class Locomotive::Steam::Adapters::Memory::Dataset
Attributes
name[R]
records[R]
Public Class Methods
new(name)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 20 def initialize(name) @name = name clear! end
Public Instance Methods
all()
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 46 def all records.values end
clear!()
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 64 def clear! @records = {} @primary_key = PrimaryKey.new end
delete(id)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 38 def delete(id) records.delete(id) end
exists?(id)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 56 def exists?(id) !!id && records.has_key?(id) end
find(id)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 50 def find(id) records.fetch(id) do raise Locomotive::Steam::Repository::RecordNotFound, "could not find #{name} with #{identity} = #{id}" end end
insert(record)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 25 def insert(record) @primary_key.increment! do |id| # if there is already an id, use it _id = record[identity] || id record[identity] = _id records[_id] = record end end
query(locale = nil, &block)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 60 def query(locale = nil, &block) Query.new(self, locale, &block) end
size()
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 42 def size records.size end
update(record)
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 34 def update(record) records[record[identity]] = records[record[identity]].deep_merge(record) end
Private Instance Methods
identity()
click to toggle source
# File lib/locomotive/steam/adapters/memory/dataset.rb, line 71 def identity @identity ||= :_id end