class LazyRecord

Constants

STORE_NAME

Attributes

id[RW]

Public Class Methods

all() click to toggle source
# File lib/lazyrecord.rb, line 102
def all
  store.all(entity_name).values
end
create(*args) click to toggle source
# File lib/lazyrecord.rb, line 128
def create(*args)
  record = new(*args)
  record.save
  record
end
delete(id) click to toggle source
# File lib/lazyrecord.rb, line 124
def delete(id)
  store.delete(entity_name, id)
end
entity_name() click to toggle source
# File lib/lazyrecord.rb, line 94
def entity_name
  name.downcase
end
find(id = nil, &block) click to toggle source
# File lib/lazyrecord.rb, line 106
def find(id = nil, &block)
  if block_given?
    all.find(&block)
  elsif id
    store.find(entity_name, id)
  else
    raise ArgumentError.new("find requires and id or a block to be provided")
  end
end
inherited(child_class) click to toggle source
# File lib/lazyrecord.rb, line 90
def inherited(child_class)
  store.create_entity(child_class.name.downcase)
end
next_id() click to toggle source
# File lib/lazyrecord.rb, line 98
def next_id
  store.next_id(entity_name)
end
save(record) click to toggle source
# File lib/lazyrecord.rb, line 120
def save(record)
  store.save(entity_name, record)
end
store() click to toggle source
# File lib/lazyrecord.rb, line 116
def store
  @@store ||= Store.new(STORE_NAME)
end

Public Instance Methods

save() click to toggle source
# File lib/lazyrecord.rb, line 135
def save
  @id ||= self.class.next_id
  self.class.save(self)
end