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