lib/active_model/attribute_methods.rb in activemodel-7.2.1.2 vs lib/active_model/attribute_methods.rb in activemodel-7.2.2
- old
+ new
@@ -213,11 +213,16 @@
generate_alias_attribute_methods(code_generator, new_name, old_name)
end
end
def generate_alias_attribute_methods(code_generator, new_name, old_name)
- define_attribute_method(old_name, _owner: code_generator, as: new_name)
+ ActiveSupport::CodeGenerator.batch(code_generator, __FILE__, __LINE__) do |owner|
+ attribute_method_patterns.each do |pattern|
+ alias_attribute_method_definition(code_generator, pattern, new_name, old_name)
+ end
+ attribute_method_patterns_cache.clear
+ end
end
def alias_attribute_method_definition(code_generator, pattern, new_name, old_name) # :nodoc:
method_name = pattern.method_name(new_name).to_s
target_name = pattern.method_name(old_name).to_s
@@ -226,11 +231,11 @@
mangled_name = build_mangled_name(target_name)
call_args = []
call_args << parameters if parameters
- define_call(code_generator, method_name, target_name, mangled_name, parameters, call_args, namespace: :alias_attribute)
+ define_call(code_generator, method_name, target_name, mangled_name, parameters, call_args, namespace: :alias_attribute, as: method_name)
end
# Is +new_name+ an alias?
def attribute_alias?(new_name)
attribute_aliases.key? new_name.to_s
@@ -439,10 +444,10 @@
def build_mangled_name(name)
mangled_name = name
unless NAME_COMPILABLE_REGEXP.match?(name)
- mangled_name = "__temp__#{name.unpack1("h*")}"
+ mangled_name = :"__temp__#{name.unpack1("h*")}"
end
mangled_name
end