lib/vedeu/repository/storage.rb in vedeu-0.0.20 vs lib/vedeu/repository/storage.rb in vedeu-0.0.21
- old
+ new
@@ -1,45 +1,42 @@
module Vedeu
class Storage
def initialize
- @counter = 0
- @map = {}
+ @map = {}
end
def create(record)
- @counter += 1
- record.id ||= @counter
- map_for(record)[record.id] = record
+ map_for(record)[record.name] = record
end
def delete(record)
- map_for(record).delete(record.id)
+ map_for(record).delete(record.name)
end
- def reset(klass)
- all(klass).map { |record| delete(record) }
+ def reset(entity)
+ all(entity).map { |record| delete(record) }
end
- def find(klass, id)
- map_for_class(klass).fetch(id, nil)
+ def find(entity, name)
+ map_for_class(entity).fetch(name, nil)
end
- def all(klass)
- map_for_class(klass).values
+ def all(entity)
+ map_for_class(entity).values
end
- def query(klass, attribute, value)
- map_for_class(klass).select do |_, result|
+ def query(entity, attribute, value)
+ map_for_class(entity).select do |_, result|
return result if result.send(attribute) == value
end
nil
end
private
- def map_for_class(klass)
- @map[klass.to_s.to_sym] ||= {}
+ def map_for_class(entity)
+ @map[entity.to_s.to_sym] ||= {}
end
def map_for(record)
map_for_class(record.class)
end