Sha256: a6f2efca637cd058a069dc73847569187a2695f9bdc79ab73ef2318f98c15dc9
Contents?: true
Size: 827 Bytes
Versions: 2
Compression:
Stored size: 827 Bytes
Contents
module AttrMethods def attr_array(*names) names.each do |n| self.send :define_method, n do |*value| if value.nil? || value.empty? return instance_variable_get("@#{n}") else self.send "#{n}=".to_sym, value.to_ary.flatten end end self.send :define_method, "#{n}=" do |value| instance_variable_set("@#{n}", value) end end end def attr_hash(*names) names.each do |n| self.send :define_method, n do |*value| if value.nil? || value.empty? instance_variable_get("@#{n}") else instance_variable_set("@#{n}", value[0]) end end self.send :define_method, "#{n}=" do |value| instance_variable_set("@#{n}", value) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
albacore-0.2.0.preview2 | lib/albacore/support/attrmethods.rb |
albacore-0.2.0.preview1 | lib/albacore/support/attrmethods.rb |