Module: YADM::Repository::ClassMethods

Includes:
Enumerable
Defined in:
lib/yadm/repository.rb

Instance Method Summary collapse

Instance Method Details

#countObject



45
46
47
# File 'lib/yadm/repository.rb', line 45

def count
  mapping.count
end

#default_queryObject



55
56
57
# File 'lib/yadm/repository.rb', line 55

def default_query
  query_class.new
end

#delete(entity) ⇒ Object



37
38
39
# File 'lib/yadm/repository.rb', line 37

def delete(entity)
  mapping.remove(entity.id)
end

#each(&block) ⇒ Object



41
42
43
# File 'lib/yadm/repository.rb', line 41

def each(&block)
  default_query.each(&block)
end

#find(id) ⇒ Object



24
25
26
# File 'lib/yadm/repository.rb', line 24

def find(id)
  wrap_object(mapping.get(id))
end

#persist(entity) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/yadm/repository.rb', line 28

def persist(entity)
  if entity.id.nil?
    entity.id = mapping.add(entity.attributes)
  else
    new_attributes = entity.attributes
    mapping.change(new_attributes.delete(:id), new_attributes)
  end
end

#send_query(query) ⇒ Object



49
50
51
52
53
# File 'lib/yadm/repository.rb', line 49

def send_query(query)
  mapping.send_query(query).map do |attributes|
    wrap_object(attributes)
  end
end