method
superclass_delegating_accessor
superclass_delegating_accessor(name, options = {})
public
Hide source
# File activesupport/lib/active_support/core_ext/class/delegating_attributes.rb, line 7 def superclass_delegating_accessor(name, options = {}) # Create private _name and _name= methods that can still be used if the public # methods are overridden. _superclass_delegating_accessor("_#{name}", options) # Generate the public methods name, name=, and name?. # These methods dispatch to the private _name, and _name= methods, making them # overridable. singleton_class.send(:define_method, name) { send("_#{name}") } singleton_class.send(:define_method, "#{name}?") { !!send("_#{name}") } singleton_class.send(:define_method, "#{name}=") { |value| send("_#{name}=", value) } # If an instance_reader is needed, generate public instance methods name and name?. if options[:instance_reader] != false define_method(name) { send("_#{name}") } define_method("#{name}?") { !!send("#{name}") } end end