module AttrDefaultable

Constants

VERSION

Public Instance Methods

attr_defaultable(att, default) click to toggle source
# 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, instance_exec(&default))
  }

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