Module: StaticAssociation::ClassMethods

Includes:
Enumerable
Defined in:
lib/static_association.rb

Instance Method Summary collapse

Instance Method Details

#allObject



31
32
33
# File 'lib/static_association.rb', line 31

def all
  index.values
end

#find(id) ⇒ Object

Raises:



35
36
37
38
# File 'lib/static_association.rb', line 35

def find(id)
  raise RecordNotFound unless index.has_key?(id)
  index[id]
end

#indexObject



27
28
29
# File 'lib/static_association.rb', line 27

def index
  @index ||= ActiveSupport::OrderedHash.new
end

#record(settings) {|record| ... } ⇒ Object

Yields:

Raises:



40
41
42
43
44
45
46
47
# File 'lib/static_association.rb', line 40

def record(settings)
  settings.assert_valid_keys(:id)
  id = settings.fetch(:id)
  raise DuplicateID if index.has_key?(id)
  record = self.new(id)
  yield(record) if block_given?
  index[id] = record
end