Module: MemoryModel::Base::Fields::ClassMethods

Defined in:
lib/memory_model/base/fields.rb

Instance Method Summary collapse

Instance Method Details

#field(attr, options = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/memory_model/base/fields.rb', line 22

def field(attr, options={})
  define_attribute_method attr unless instance_method_already_implemented? attr
  fields.add(attr.to_sym, options)
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def #{attr}
      read_attribute :#{attr}
    end

    def #{attr}=(value)
      write_attribute :#{attr}, value
    end
  RUBY
end

#fieldsObject



36
37
38
39
# File 'lib/memory_model/base/fields.rb', line 36

def fields
  return nil if self == MemoryModel::Base
  @fields ||= FieldSet.new
end