diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index f7012f1efd..b47d7e8769 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -2075,7 +2075,8 @@ class Gem::Specification < Gem::BasicSpecification end ## - # Duplicates array_attributes from +other_spec+ so state isn't shared. + # Duplicates Array and Gem::Requirement attributes from +other_spec+ so state isn't shared. + # def initialize_copy(other_spec) self.class.array_attributes.each do |name| @@ -2097,6 +2098,9 @@ class Gem::Specification < Gem::BasicSpecification raise e end end + + @required_ruby_version = other_spec.required_ruby_version.dup + @required_rubygems_version = other_spec.required_rubygems_version.dup end def base_dir diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index ca5e8cef3b..3c37f08efa 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -1194,10 +1194,13 @@ dependencies: [] assert_same spec.bindir, dup_spec.bindir assert_equal ">= 0", spec.required_ruby_version.to_s - assert_same spec.required_ruby_version, dup_spec.required_ruby_version + assert_equal spec.required_ruby_version, dup_spec.required_ruby_version + refute_same spec.required_ruby_version, dup_spec.required_ruby_version assert_equal ">= 0", spec.required_rubygems_version.to_s - assert_same spec.required_rubygems_version, + assert_equal spec.required_rubygems_version, + dup_spec.required_rubygems_version + refute_same spec.required_rubygems_version, dup_spec.required_rubygems_version end