Module: AttrDefaultable

Included in:
Module
Defined in:
lib/attr_defaultable.rb,
lib/attr_defaultable/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Instance Method Summary collapse

Instance Method Details

#attr_defaultable(att, default) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/attr_defaultable.rb', line 4

def attr_defaultable(att, default)
  define_method(att.to_sym) {
    instance_variable_get("@#{att}".to_sym) || instance_variable_set("@#{att}".to_sym, default.call)
  }

  define_method("#{att}=".to_sym) { |val|
    instance_variable_set("@#{att}".to_sym, val)
  }
end