module Locomotive::Steam::Models::Repository

Attributes

adapter[RW]
local_conditions[RW]
scope[RW]

Public Class Methods

new(adapter, site = nil, locale = nil) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 16
def initialize(adapter, site = nil, locale = nil)
  @adapter  = adapter
  @scope    = Scope.new(site, locale)
  @local_conditions = {}
end

Public Instance Methods

all(&block)
Alias for: query
base_url(entity = nil) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 85
def base_url(entity = nil)
  adapter.base_url(mapper, scope, entity)
end
build(attributes, &block) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 27
def build(attributes, &block)
  mapper.to_entity(attributes)
end
count(&block) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 55
def count(&block)
  adapter.count(mapper, scope, &block)
end
create(entity) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 31
def create(entity)
  adapter.create(mapper, scope, entity)
end
delete(entity) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 43
def delete(entity)
  adapter.delete(mapper, scope, entity)
end
find(id) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 47
def find(id)
  adapter.find(mapper, scope, id)
end
first(&block) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 59
def first(&block)
  adapter.query(mapper, scope, &block).first
end
i18n_value_of(entity, name) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 81
def i18n_value_of(entity, name)
  mapper.i18n_value_of(entity, name, locale)
end
inc(entity, attribute, amount = 1) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 39
def inc(entity, attribute, amount = 1)
  adapter.inc(mapper, entity, attribute, amount)
end
initialize_copy(source) click to toggle source
Calls superclass method
# File lib/locomotive/steam/models/repository.rb, line 22
def initialize_copy(source)
  super
  @local_conditions = source.local_conditions.dup
end
k(name, operator) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 67
def k(name, operator)
  adapter.key(name, operator)
end
last(&block) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 63
def last(&block)
  adapter.query(mapper, scope, &block).last
end
mapper(memoized = true) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 73
def mapper(memoized = true)
  name, options, block = mapper_options

  return @mapper if @mapper && memoized

  @mapper = Mapper.new(name, options, self, &block)
end
prepare_conditions(*conditions) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 89
def prepare_conditions(*conditions)
  _local_conditions = @local_conditions.dup

  first = { order_by: _local_conditions.delete(:order_by) }.delete_if { |_, v| v.blank? }

  [first, *conditions.flatten].inject(HashWithIndifferentAccess.new) do |memo, hash|
    memo.merge!(hash) unless hash.blank?
    memo
  end.merge(_local_conditions)
end
query(&block) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 51
def query(&block)
  adapter.query(mapper, scope, &block)
end
Also aliased as: all
update(entity) click to toggle source
# File lib/locomotive/steam/models/repository.rb, line 35
def update(entity)
  adapter.update(mapper, scope, entity)
end