module StaticAssociation::ClassMethods

Public Instance Methods

all() click to toggle source
# File lib/static_association.rb, line 30
def all
  index.values
end
find(id) click to toggle source
# File lib/static_association.rb, line 34
def find(id)
  find_by_id(id) or raise RecordNotFound
end
find_by_id(id) click to toggle source
# File lib/static_association.rb, line 38
def find_by_id(id)
  index[id]
end
index() click to toggle source
# File lib/static_association.rb, line 26
def index
  @index ||= {} 
end
record(settings, &block) click to toggle source
# File lib/static_association.rb, line 42
def record(settings, &block)
  settings.assert_valid_keys(:id)
  id = settings.fetch(:id)
  raise DuplicateID if index.has_key?(id)
  record = self.new(id)
  record.instance_exec(record, &block) if block_given?
  index[id] = record
end