class AttrArgsShorthand
Public Class Methods
set(object, arguments, args = {})
click to toggle source
# File lib/attr_args_shorthand.rb, line 2 def self.set(object, arguments, args = {}) arguments.each do |key, value| object.instance_variable_set("@#{key}", value) unless object.respond_to?(key) object.define_singleton_method(key) do instance_variable_get("@#{key}") end end unless object.respond_to?("#{key}=") object.define_singleton_method("#{key}=") do |value| instance_variable_set("@#{key}", value) end end end end
set_args(object, args)
click to toggle source
# File lib/attr_args_shorthand.rb, line 32 def self.set_args(object, args) args.each do |key, value| object.instance_variable_set("@#{key}", value) end end
set_attrs(clazz, args)
click to toggle source
# File lib/attr_args_shorthand.rb, line 20 def self.set_attrs(clazz, args) args.each do |arg| clazz.__send__(:define_method, arg) do instance_variable_get("@#{arg}") end clazz.__send__(:define_method, "#{arg}=") do |value| instance_variable_set("@#{arg}", value) end end end