aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2019-03-19 21:17:02 -0400
committerGitHub <noreply@github.com>2019-03-19 21:17:02 -0400
commit3dee96e92b08edafa2a7be6964b0596bb738f709 (patch)
tree3466be4920bc55d770514c7d4996e032a110095b
parentb504a5d96e0ec30856a3fc54305550f3586002aa (diff)
parent8ca3c286a768038f6b391fd3bfbdfcc299876a1f (diff)
downloadrails-3dee96e92b08edafa2a7be6964b0596bb738f709.tar.gz
rails-3dee96e92b08edafa2a7be6964b0596bb738f709.tar.bz2
rails-3dee96e92b08edafa2a7be6964b0596bb738f709.zip
Merge pull request #35595 from shioyama/generated_attribute_methods_namespaced_constant
Give GeneratedAttributeMethods module a name
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb7
-rw-r--r--activerecord/test/cases/attribute_methods_test.rb2
2 files changed, 5 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb
index fd8c1da842..af7e46e649 100644
--- a/activerecord/lib/active_record/attribute_methods.rb
+++ b/activerecord/lib/active_record/attribute_methods.rb
@@ -24,7 +24,7 @@ module ActiveRecord
RESTRICTED_CLASS_METHODS = %w(private public protected allocate new name parent superclass)
- class GeneratedAttributeMethods < Module #:nodoc:
+ class GeneratedAttributeMethodsBuilder < Module #:nodoc:
include Mutex_m
end
@@ -35,7 +35,8 @@ module ActiveRecord
end
def initialize_generated_modules # :nodoc:
- @generated_attribute_methods = GeneratedAttributeMethods.new
+ @generated_attribute_methods = const_set(:GeneratedAttributeMethods, GeneratedAttributeMethodsBuilder.new)
+ private_constant :GeneratedAttributeMethods
@attribute_methods_generated = false
include @generated_attribute_methods
@@ -88,7 +89,7 @@ module ActiveRecord
# If ThisClass < ... < SomeSuperClass < ... < Base and SomeSuperClass
# defines its own attribute method, then we don't want to overwrite that.
defined = method_defined_within?(method_name, superclass, Base) &&
- ! superclass.instance_method(method_name).owner.is_a?(GeneratedAttributeMethods)
+ ! superclass.instance_method(method_name).owner.is_a?(GeneratedAttributeMethodsBuilder)
defined || super
end
end
diff --git a/activerecord/test/cases/attribute_methods_test.rb b/activerecord/test/cases/attribute_methods_test.rb
index f51c87ef2b..9fd62dcf72 100644
--- a/activerecord/test/cases/attribute_methods_test.rb
+++ b/activerecord/test/cases/attribute_methods_test.rb
@@ -1083,7 +1083,7 @@ class AttributeMethodsTest < ActiveRecord::TestCase
test "generated attribute methods ancestors have correct class" do
mod = Topic.send(:generated_attribute_methods)
- assert_match %r(GeneratedAttributeMethods), mod.inspect
+ assert_match %r(Topic::GeneratedAttributeMethods), mod.inspect
end
private