Module: CouchModel::Base::Accessor::ClassMethods

Defined in:
lib/couch_model/base/accessor.rb

Instance Method Summary collapse

Instance Method Details

#key_accessor(*arguments) ⇒ Object



33
34
35
36
# File 'lib/couch_model/base/accessor.rb', line 33

def key_accessor(*arguments)
  key_reader *arguments
  key_writer *arguments
end

#key_reader(key, options = { }) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
# File 'lib/couch_model/base/accessor.rb', line 17

def key_reader(key, options = { })
  raise ArgumentError, "method #{key} is already defined" if method_defined?(:"#{key}")
  set_default key, options[:default] if options.has_key?(:default)
  define_method :"#{key}" do
    @attributes[key.to_s]
  end
end

#key_writer(key, options = { }) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
# File 'lib/couch_model/base/accessor.rb', line 25

def key_writer(key, options = { })
  raise ArgumentError, "method #{key}= is already defined" if method_defined?(:"#{key}=")
  set_default key, options[:default] if options.has_key?(:default)
  define_method :"#{key}=" do |value|
    @attributes[key.to_s] = value
  end
end