method
superclass_delegating_accessor
v4.2.9 -
Show latest stable
- Class:
Class
superclass_delegating_accessor(name, options = {})public
No documentation available.
# 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