module InstanceProperty
Constants
- VERSION
Public Instance Methods
properties(sym0, *syms, &initializer)
click to toggle source
# File lib/instance_property.rb, line 20 def properties(sym0, *syms, &initializer) ([sym0] + syms).each {|sym| property sym, &initializer } end
property(sym, default = nil, &initializer)
click to toggle source
# File lib/instance_property.rb, line 4 def property(sym, default = nil, &initializer) initializer ||= -> * { default } define_method(sym) do |*args| name = "@#{sym}".to_sym if !args.empty? instance_variable_set name, args.first elsif !instance_variable_defined? name instance_variable_set name, instance_eval(&initializer) end instance_variable_get name end end