summaryrefslogtreecommitdiff
path: root/lib/ipaddr.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-04-24 06:08:32 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-04-24 06:08:32 +0000
commit8e19c02e8f14be0254e7a3978cce6ff07677abd2 (patch)
treed142293a3e11a7040976b226899b4ba537cbf201 /lib/ipaddr.rb
parent1de4203c5150088bd795d04e0f6fc4dd75ac00f3 (diff)
downloadruby-8e19c02e8f14be0254e7a3978cce6ff07677abd2.tar.gz
* lib/ipaddr.rb (include?): Support non-IPAddr parameters by Dave Thomas. [ruby-core:00980]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/ipaddr.rb')
-rw-r--r--lib/ipaddr.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb
index 2a7419aa46..b8befe8499 100644
--- a/lib/ipaddr.rb
+++ b/lib/ipaddr.rb
@@ -131,9 +131,13 @@ class IPAddr
other_addr = other.to_i
other_family = other.family
end
- if family != other_family
- return false
- end
+ else # Not IPAddr - assume integer in same family as us
+ other_addr = other.to_i
+ other_family = family
+ end
+
+ if family != other_family
+ return false
end
return ((addr & mask_addr) == (other_addr & mask_addr))
end
@@ -685,6 +689,12 @@ class TC_Operator < Test::Unit::TestCase
assert_equal(true, net1.include?(IPAddr.new("192.168.2.0")))
assert_equal(true, net1.include?(IPAddr.new("192.168.2.255")))
assert_equal(false, net1.include?(IPAddr.new("192.168.3.0")))
+ # test with integer parameter
+ int = (192 << 24) + (168 << 16) + (2 << 8) + 13
+
+ assert_equal(true, net1.include?(int))
+ assert_equal(false, net1.include?(int+255))
+
end
end