Module: RFunk::Attribute::ClassMethods

Defined in:
lib/rfunk/attribute.rb

Instance Method Summary collapse

Instance Method Details

#attribute(name, type, options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rfunk/attribute.rb', line 15

def attribute(name, type, options = {})
  add_attribute(name, type, options)

  self.send :define_method, name do |value = nil|
    if value
      raise_expected_type(name, value, type)
      create_immutable(variable_name(name), value)
    else
      Option(self.instance_variable_get(variable_name(name)))
    end
  end
end