Methods
Attributes
[R] | attributes |
Class Public methods
new(attributes)
Source:
# File activemodel/lib/active_model/validations/acceptance.rb, line 28
def initialize(attributes)
@attributes = attributes.map(&:to_s)
end
Instance Public methods
==(other)
Source:
# File activemodel/lib/active_model/validations/acceptance.rb, line 73
def ==(other)
self.class == other.class && attributes == other.attributes
end
define_on(klass)
Source:
# File activemodel/lib/active_model/validations/acceptance.rb, line 56
def define_on(klass)
@lock&.synchronize do
return unless @lock
attr_readers = attributes.reject { |name| klass.attribute_method?(name) }
attr_writers = attributes.reject { |name| klass.attribute_method?("#{name}=") }
attr_reader(*attr_readers)
attr_writer(*attr_writers)
remove_method :respond_to_missing?
remove_method :method_missing
@lock = nil
end
end
included(klass)
Source:
# File activemodel/lib/active_model/validations/acceptance.rb, line 32
def included(klass)
@lock = Mutex.new
mod = self
define_method(:respond_to_missing?) do |method_name, include_private = false|
mod.define_on(klass)
super(method_name, include_private) || mod.matches?(method_name)
end
define_method(:method_missing) do |method_name, *args, &block|
mod.define_on(klass)
if mod.matches?(method_name)
send(method_name, *args, &block)
else
super(method_name, *args, &block)
end
end
end