class Class
Public Instance Methods
block_attr_accessor(*my_accessors)
click to toggle source
# File lib/purplish-accessors/class.rb, line 33 def block_attr_accessor(*my_accessors) my_accessors.each do |accessor| define_method(accessor) do instance_variable_get("@#{accessor}") end define_method("#{accessor}=") do |accessor_value| instance_variable_set("@#{accessor}", accessor_value ? accessor_value.weak! : nil) end end end
bool_attr_accessor(*my_accessors)
click to toggle source
Returns the list of method names (symbols) generated. Useful for making them private
# File lib/purplish-accessors/class.rb, line 15 def bool_attr_accessor(*my_accessors) method_names = [] my_accessors.each do |accessor| name = ("#{accessor}?").to_sym method_names << name define_method(name) do !!instance_variable_get("@#{accessor}") #rubocop:disable DoubleNegation end name = "#{accessor}=".to_sym method_names << name define_method(name) do |accessor_value| instance_variable_set("@#{accessor}", accessor_value) end end method_names end
private_attr_accessor(*attr)
click to toggle source
# File lib/purplish-accessors/class.rb, line 2 def private_attr_accessor(*attr) attr_accessor(*attr) private(*attr) attr.each { |e| private("#{e}=".to_sym) } end
private_bool_attr_accessor(*attr)
click to toggle source
# File lib/purplish-accessors/class.rb, line 8 def private_bool_attr_accessor(*attr) method_names = bool_attr_accessor(*attr) classes = method_names.map(&:class) private(*method_names) end
symbol_attr_accessor(*my_accessors)
click to toggle source
# File lib/purplish-accessors/class.rb, line 45 def symbol_attr_accessor(*my_accessors) my_accessors.each do |accessor| define_method(accessor) do instance_variable_get("@#{accessor}") end define_method("#{accessor}=") do |accessor_value| instance_variable_set("@#{accessor}", accessor_value.to_sym) end end end