Module: Locomotive::Steam::Models::Repository

Defined Under Namespace

Modules: ClassMethods Classes: RecordNotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#adapterObject

Returns the value of attribute adapter.



11
12
13
# File 'lib/locomotive/steam/models/repository.rb', line 11

def adapter
  @adapter
end

#local_conditionsObject

Returns the value of attribute local_conditions.



11
12
13
# File 'lib/locomotive/steam/models/repository.rb', line 11

def local_conditions
  @local_conditions
end

#scopeObject

Returns the value of attribute scope.



11
12
13
# File 'lib/locomotive/steam/models/repository.rb', line 11

def scope
  @scope
end

Instance Method Details

#base_url(entity = nil) ⇒ Object



85
86
87
# File 'lib/locomotive/steam/models/repository.rb', line 85

def base_url(entity = nil)
  adapter.base_url(mapper, scope, entity)
end

#build(attributes, &block) ⇒ Object



27
28
29
# File 'lib/locomotive/steam/models/repository.rb', line 27

def build(attributes, &block)
  mapper.to_entity(attributes)
end

#count(&block) ⇒ Object



55
56
57
# File 'lib/locomotive/steam/models/repository.rb', line 55

def count(&block)
  adapter.count(mapper, scope, &block)
end

#create(entity) ⇒ Object



31
32
33
# File 'lib/locomotive/steam/models/repository.rb', line 31

def create(entity)
  adapter.create(mapper, scope, entity)
end

#delete(entity) ⇒ Object



43
44
45
# File 'lib/locomotive/steam/models/repository.rb', line 43

def delete(entity)
  adapter.delete(mapper, scope, entity)
end

#find(id) ⇒ Object



47
48
49
# File 'lib/locomotive/steam/models/repository.rb', line 47

def find(id)
  adapter.find(mapper, scope, id)
end

#first(&block) ⇒ Object



59
60
61
# File 'lib/locomotive/steam/models/repository.rb', line 59

def first(&block)
  adapter.query(mapper, scope, &block).first
end

#i18n_value_of(entity, name) ⇒ Object



81
82
83
# 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) ⇒ Object



39
40
41
# File 'lib/locomotive/steam/models/repository.rb', line 39

def inc(entity, attribute, amount = 1)
  adapter.inc(mapper, entity, attribute, amount)
end

#initialize(adapter, site = nil, locale = nil) ⇒ Object



16
17
18
19
20
# 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

#initialize_copy(source) ⇒ Object



22
23
24
25
# File 'lib/locomotive/steam/models/repository.rb', line 22

def initialize_copy(source)
  super
  @local_conditions = source.local_conditions.dup
end

#k(name, operator) ⇒ Object



67
68
69
# File 'lib/locomotive/steam/models/repository.rb', line 67

def k(name, operator)
  adapter.key(name, operator)
end

#last(&block) ⇒ Object



63
64
65
# File 'lib/locomotive/steam/models/repository.rb', line 63

def last(&block)
  adapter.query(mapper, scope, &block).last
end

#mapper(memoized = true) ⇒ Object



73
74
75
76
77
78
79
# 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) ⇒ Object



89
90
91
92
93
94
95
96
97
98
# 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) ⇒ Object Also known as: all



51
52
53
# File 'lib/locomotive/steam/models/repository.rb', line 51

def query(&block)
  adapter.query(mapper, scope, &block)
end

#update(entity) ⇒ Object



35
36
37
# File 'lib/locomotive/steam/models/repository.rb', line 35

def update(entity)
  adapter.update(mapper, scope, entity)
end