ipaddress_2 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cda18a11bce6a923e0471a7d08d6f8df8dae71d1ff768c6e0978772124be6f50
4
- data.tar.gz: 47c24c1776bb9de0dedbec3179e42c22ed8ff4da96db53bcd95d8cb328bf2ca5
3
+ metadata.gz: 359df425a73931023ee0026c8fdb2819f43117e24e1aa24b5ff7bb3d7f6121f6
4
+ data.tar.gz: db06b07d89444432225af2e82529a0eca395cda6e42ed59bf0cf443befc914c8
5
5
  SHA512:
6
- metadata.gz: f9c69847cbf37301f1ded22d7bd4e97f0ab1040ff14d8f14993c414908872de88d06d6c25eecf1d153aaa22644038dcf3fb0fc2e4febf8be93e339b379b1f480
7
- data.tar.gz: dbd02e8ed7d482b51873b45f443d92d7d11c78545ac20b9ba970745d3029c3d66c90aeb526dbf87f7bf95bd8a138ceb87e8621fba8d3e71dfadd591988b1fb35
6
+ metadata.gz: b537db60dfaf772c2162d3c1f52c0066b0737af5811fa0ac1894aa86414ce86950f4bba00c8aa3c3a1c1171937de26848933020ce428f5b7df04611a08bcf19f
7
+ data.tar.gz: e2632e98d23618da97172f711d1736d7b6845105cb53412c42db5caa6326edc66b9e1f1ec2319f61855d1c54f3fa743df02cd653a6fd86f933b4f5d9944392f3
data/.travis.yml CHANGED
@@ -4,6 +4,8 @@ rvm:
4
4
  - 2.4
5
5
  - 2.5
6
6
  - 2.6
7
+ - 2.7
8
+ - 3.0
7
9
  install:
8
10
  - gem install bundler
9
11
  - gem install rake
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Enhancements
6
+ * include? will now accept a string. Will also work for include_all?
7
+
3
8
  ## 0.13.0
4
9
 
5
10
  ### Enhancements
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.13.0
1
+ 0.14.0
data/ipaddress_2.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.version = IPAddress::VERSION
10
10
  s.require_paths = ["lib"]
11
11
  s.authors = ["bluemonk", "mikemackintosh"]
12
- s.description = "IPAddress2 is a Ruby library designed to make manipulation\n of IPv4 and IPv6 addresses both powerful and simple. It mantains\n a layer of compatibility with Ruby's own IPAddr, while\n addressing many of its issues."
12
+ s.description = "IPAddress2 is a Ruby library designed to make manipulation\n of IPv4 and IPv6 addresses both powerful and simple. It maintains\n a layer of compatibility with Ruby's own IPAddr, while\n addressing many of its issues."
13
13
  s.email = "adam@21eleven.com"
14
14
  s.extra_rdoc_files = [
15
15
  "CHANGELOG.rdoc",
@@ -640,7 +640,7 @@ module IPAddress;
640
640
  #
641
641
  # Checks whether a subnet includes the given IP address.
642
642
  #
643
- # Accepts an IPAddress::IPv4 object.
643
+ # Accepts an IPAddress::IPv4 object or a string.
644
644
  #
645
645
  # ip = IPAddress("192.168.10.100/24")
646
646
  #
@@ -652,13 +652,19 @@ module IPAddress;
652
652
  # ip.include? IPAddress("172.16.0.48/16")
653
653
  # #=> false
654
654
  #
655
+ # ip.include? "192.168.10.50"
656
+ # #=> true
657
+ #
655
658
  def include?(oth)
659
+ unless oth.is_a? IPAddress::IPv4
660
+ oth = IPv4.new(oth)
661
+ end
656
662
  @prefix <= oth.prefix and network_u32 == (oth.to_u32 & @prefix.to_u32)
657
663
  end
658
664
 
659
665
  #
660
666
  # Checks whether a subnet includes all the
661
- # given IPv4 objects.
667
+ # given IPv4 objects or strings.
662
668
  #
663
669
  # ip = IPAddress("192.168.10.100/24")
664
670
  #
@@ -668,6 +674,9 @@ module IPAddress;
668
674
  # ip.include_all?(addr1,addr2)
669
675
  # #=> true
670
676
  #
677
+ # ip.include_all?("192.168.10.102/24", "192.168.10.103/24")
678
+ # #=> true
679
+ #
671
680
  def include_all?(*others)
672
681
  others.all? {|oth| include?(oth)}
673
682
  end
@@ -612,13 +612,19 @@ module IPAddress;
612
612
  # ip6.include? IPAddress("2001:db8:1::8:800:200c:417a/76")
613
613
  # #=> false
614
614
  #
615
+ # ip6.include? "2001:db8::8:800:200c:1"
616
+ # #=> true
617
+ #
615
618
  def include?(oth)
619
+ unless oth.is_a? IPAddress::IPv6
620
+ oth = IPv6.new(oth)
621
+ end
616
622
  @prefix <= oth.prefix and network_u128 == self.class.new(oth.address+"/#@prefix").network_u128
617
623
  end
618
624
 
619
625
  #
620
626
  # Checks whether a subnet includes all the
621
- # given IPv4 objects.
627
+ # given IPv4 objects or strings.
622
628
  #
623
629
  # ip = IPAddress("2001:db8:8:800::1/64")
624
630
  #
@@ -628,6 +634,9 @@ module IPAddress;
628
634
  # ip.include_all?(addr1,addr2)
629
635
  # #=> true
630
636
  #
637
+ # ip.include_all?("2001:db8:8:800::2/64", "2001:db8:8:800::8/64")
638
+ # #=> true
639
+ #
631
640
  def include_all?(*others)
632
641
  others.all? {|oth| include?(oth)}
633
642
  end
@@ -1,3 +1,3 @@
1
1
  module IPAddress
2
- VERSION = "0.13.0"
2
+ VERSION = "0.14.0"
3
3
  end
@@ -327,7 +327,10 @@ class IPv4Test < Minitest::Test
327
327
  assert_equal false, ip.include?(@klass.new("5.5.5.5/32"))
328
328
  assert_equal false, ip.include?(@klass.new("11.0.0.0/8"))
329
329
  ip = @klass.new("13.13.0.0/13")
330
- assert_equal false, ip.include?(@klass.new("13.16.0.0/32"))
330
+ assert_equal false, ip.include?(@klass.new("13.16.0.0/32"))
331
+ ip = @klass.new("10.10.10.0/24")
332
+ assert_equal true, ip.include?("10.10.10.100")
333
+ assert_equal false, ip.include?("10.10.9.100")
331
334
  end
332
335
 
333
336
  def test_method_include_all?
@@ -336,6 +339,8 @@ class IPv4Test < Minitest::Test
336
339
  addr2 = @klass.new("192.168.10.103/24")
337
340
  assert_equal true, ip.include_all?(addr1,addr2)
338
341
  assert_equal false, ip.include_all?(addr1, @klass.new("13.16.0.0/32"))
342
+ assert_equal true, ip.include_all?("192.168.10.102/24", "192.168.10.103/24")
343
+ assert_equal false, ip.include_all?(addr1, "13.16.0.0/32")
339
344
  end
340
345
 
341
346
  def test_method_ipv4?
@@ -352,6 +352,9 @@ class IPv6Test < Minitest::Test
352
352
  not_included = @klass.new "2001:db8:1::8:800:200c:417a/76"
353
353
  assert_equal true, @ip.include?(included)
354
354
  assert_equal false, @ip.include?(not_included)
355
+ # string test
356
+ assert_equal true, @ip.include?("2001:db8::8:800:200c:2")
357
+ assert_equal false, @ip.include?("2001:db8:1::8:800:200c:417a")
355
358
  end
356
359
 
357
360
  def test_method_include_all?
@@ -360,6 +363,8 @@ class IPv6Test < Minitest::Test
360
363
  addr2 = @klass.new("2001:db8:8:800::8/64")
361
364
  assert_equal true, ip.include_all?(addr1,addr2)
362
365
  assert_equal false, ip.include_all?(addr1, @klass.new("2002:db8:8:800::2/64"))
366
+ assert_equal true, ip.include_all?("2001:db8:8:800::2/64", "2001:db8:8:800::8/64")
367
+ assert_equal false, ip.include_all?(addr1, "2002:db8:8:800::2/64")
363
368
  end
364
369
 
365
370
  def test_method_to_hex
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipaddress_2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bluemonk
8
8
  - mikemackintosh
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-05-08 00:00:00.000000000 Z
12
+ date: 2021-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0'
132
132
  description: |-
133
133
  IPAddress2 is a Ruby library designed to make manipulation
134
- of IPv4 and IPv6 addresses both powerful and simple. It mantains
134
+ of IPv4 and IPv6 addresses both powerful and simple. It maintains
135
135
  a layer of compatibility with Ruby's own IPAddr, while
136
136
  addressing many of its issues.
137
137
  email: adam@21eleven.com
@@ -172,7 +172,7 @@ homepage: https://github.com/ipaddress2-gem/ipaddress_2
172
172
  licenses:
173
173
  - MIT
174
174
  metadata: {}
175
- post_install_message:
175
+ post_install_message:
176
176
  rdoc_options: []
177
177
  require_paths:
178
178
  - lib
@@ -187,9 +187,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  requirements: []
190
- rubyforge_project:
191
- rubygems_version: 2.7.8
192
- signing_key:
190
+ rubygems_version: 3.2.3
191
+ signing_key:
193
192
  specification_version: 4
194
193
  summary: IPv4/IPv6 address manipulation library
195
194
  test_files: []