Module: Couchbase::Model::Attributes::ClassMethods

Defined in:
lib/couchbase/model/attributes.rb

Instance Method Summary collapse

Instance Method Details

#attribute(*names) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/couchbase/model/attributes.rb', line 15

def attribute(*names)
  options = names.extract_options!

  names.each do |name|
    name = name.to_s
    attributes[name] = options[:default]

    define_attribute_methods([name])

    define_method(name) do
      read_attribute name
    end

    define_method("#{name}=") do |value|
      write_attribute name, value
    end
  end
end