diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-17 09:57:39 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-17 09:57:39 +0000 |
commit | 00088b97ec59766147d7357c780f0f1cf500dfef (patch) | |
tree | a4e0faf5dde3737477232cc35ed7a2abf44a6c8e | |
parent | eef3f0d94cd884a27ed2b9523240370f5e8026f1 (diff) |
merge revision(s) 49620: [Backport #10857]
* lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements
returned by Kernel#instance_variables are Symbols now.
[ruby-core:68128] [Bug #10857]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/resolv.rb | 6 | ||||
-rw-r--r-- | test/resolv/test_resource.rb | 21 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 31 insertions, 4 deletions
@@ -1,3 +1,9 @@ +Tue Feb 17 18:57:13 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements + returned by Kernel#instance_variables are Symbols now. + [ruby-core:68128] [Bug #10857] + Tue Feb 17 15:39:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide diff --git a/lib/resolv.rb b/lib/resolv.rb index 3b6e72acc2..7855c6eeb8 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1666,10 +1666,10 @@ class Resolv return false unless self.class == other.class s_ivars = self.instance_variables s_ivars.sort! - s_ivars.delete "@ttl" + s_ivars.delete :@ttl o_ivars = other.instance_variables o_ivars.sort! - o_ivars.delete "@ttl" + o_ivars.delete :@ttl return s_ivars == o_ivars && s_ivars.collect {|name| self.instance_variable_get name} == o_ivars.collect {|name| other.instance_variable_get name} @@ -1682,7 +1682,7 @@ class Resolv def hash # :nodoc: h = 0 vars = self.instance_variables - vars.delete "@ttl" + vars.delete :@ttl vars.each {|name| h ^= self.instance_variable_get(name).hash } diff --git a/test/resolv/test_resource.rb b/test/resolv/test_resource.rb new file mode 100644 index 0000000000..7ec17e33e7 --- /dev/null +++ b/test/resolv/test_resource.rb @@ -0,0 +1,21 @@ +require 'test/unit' +require 'resolv' + +class TestResolvResource < Test::Unit::TestCase + def setup + address = "192.168.0.1" + @name1 = Resolv::DNS::Resource::IN::A.new(address) + @name1.instance_variable_set(:@ttl, 100) + @name2 = Resolv::DNS::Resource::IN::A.new(address) + end + + def test_equality + bug10857 = '[ruby-core:68128] [Bug #10857]' + assert_equal(@name1, @name2, bug10857) + end + + def test_hash + bug10857 = '[ruby-core:68128] [Bug #10857]' + assert_equal(@name1.hash, @name2.hash, bug10857) + end +end @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.0" #define RUBY_RELEASE_DATE "2015-02-17" -#define RUBY_PATCHLEVEL 51 +#define RUBY_PATCHLEVEL 52 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 2 |