ipaddr_range_set 0.10.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.travis.yml +5 -0
- data/README.md +4 -1
- data/lib/ipaddr_range_set.rb +7 -2
- data/lib/ipaddr_range_set/version.rb +1 -1
- data/test/test_ip_addr_range_set.rb +8 -4
- metadata +8 -10
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ec00c0b3c751451810209932ce2bed617eff7a32
|
4
|
+
data.tar.gz: 23d123fe53c6a1b4cf20a49d1677120e3a7d2b54
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eaaa198ba4f8279dd5e7fc695a897dc0133f95081f38f71a9a9cb55105498ab638ee691e0068277d65a0ea73b26172047503106a7317715eefb624b925256fa0
|
7
|
+
data.tar.gz: ae0e7544efef39c72de76941a42f3fda1c92c86ab468aed2c98ca9fdff98d34894916f654e437d009fb1caefd37ffcc57f1a29a7e28d79d6f291df621056b627
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
ipaddr_range_set
|
2
2
|
================
|
3
|
+
[](https://travis-ci.org/jrochkind/ipaddr_range_set)
|
4
|
+
|
5
|
+
|
3
6
|
|
4
7
|
convenience class to create a set of possibly discontiguous IP address range
|
5
8
|
segments, and check if an IP address is in the set. ruby 1.9.3+ only.
|
@@ -93,4 +96,4 @@ is done (should it be? I have no idea, don't really understand ipv6 use cases).
|
|
93
96
|
## thanks
|
94
97
|
|
95
98
|
to whoever wrote IPAddr in ruby stdlib, nice to have it, this is just a
|
96
|
-
convenience wrapper over it, really.
|
99
|
+
convenience wrapper over it, really.
|
data/lib/ipaddr_range_set.rb
CHANGED
@@ -3,6 +3,11 @@ require "ipaddr_range_set/version"
|
|
3
3
|
require 'ipaddr'
|
4
4
|
|
5
5
|
class IPAddrRangeSet
|
6
|
+
# In ruby 2.0, they introduced IPAddr::InvalidAddressError, before
|
7
|
+
# that it was just ArgumentError. Let's throw it if we've got it
|
8
|
+
# to be consistent.
|
9
|
+
ArgErrorClass = (defined? IPAddr::InvalidAddressError) ? IPAddr::InvalidAddressError : ArgumentError
|
10
|
+
|
6
11
|
|
7
12
|
# Zero or more segment arguments, which can be input in a variety of
|
8
13
|
# of formats.
|
@@ -52,7 +57,7 @@ class IPAddrRangeSet
|
|
52
57
|
octets = segment.split('.')
|
53
58
|
|
54
59
|
if (octets.rindex {|o| o =~ /\d+/}) > octets.rindex("*")
|
55
|
-
raise
|
60
|
+
raise ArgErrorClass.new("Invalid splat range, all *s have to come before all concrete octets")
|
56
61
|
end
|
57
62
|
|
58
63
|
splats = 0
|
@@ -85,7 +90,7 @@ class IPAddrRangeSet
|
|
85
90
|
segments.each do |segment|
|
86
91
|
# important to use cover? and not include? on Ranges, to avoid
|
87
92
|
# terribly inefficient check. But if segment is an IPAddr, you want include?
|
88
|
-
if segment.respond_to?(:cover)
|
93
|
+
if segment.respond_to?(:cover?)
|
89
94
|
return true if segment.cover? ip_addr
|
90
95
|
else
|
91
96
|
return true if segment.include? ip_addr
|
@@ -75,15 +75,19 @@ class TestIpAddrRange < Test::Unit::TestCase
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def test_bad_input
|
78
|
-
|
78
|
+
# ruby 2.0 IPAddr::InvalidAddressError is a subclass of ArgumentError,
|
79
|
+
# but minitest assert_raise insists on exact kind
|
80
|
+
exception_class = (defined? IPAddr::InvalidAddressError) ? IPAddr::InvalidAddressError : ArgumentError
|
81
|
+
|
82
|
+
assert_raise(exception_class) { IPAddrRangeSet.new("foo")}
|
79
83
|
|
80
|
-
assert_raise(
|
84
|
+
assert_raise(exception_class) { IPAddrRangeSet.new("124.*")}
|
81
85
|
|
82
86
|
# splats have to be at end
|
83
|
-
assert_raise(
|
87
|
+
assert_raise(exception_class) { IPAddrRangeSet.new("124.*.1.1")}
|
84
88
|
|
85
89
|
# Not a valid ipv4, make sure we catch it on ranges
|
86
|
-
assert_raise(
|
90
|
+
assert_raise(exception_class) { IPAddrRangeSet.new("124.999.1.1".."125.0.0.1") }
|
87
91
|
end
|
88
92
|
|
89
93
|
def test_multi_arg
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ipaddr_range_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonathan Rochkind
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description:
|
15
14
|
email:
|
@@ -18,6 +17,7 @@ executables: []
|
|
18
17
|
extensions: []
|
19
18
|
extra_rdoc_files: []
|
20
19
|
files:
|
20
|
+
- .travis.yml
|
21
21
|
- Gemfile
|
22
22
|
- README.md
|
23
23
|
- Rakefile
|
@@ -27,29 +27,27 @@ files:
|
|
27
27
|
- test/test_ip_addr_range_set.rb
|
28
28
|
homepage: https://github.com/jrochkind/ipaddr_range_set
|
29
29
|
licenses: []
|
30
|
+
metadata: {}
|
30
31
|
post_install_message:
|
31
32
|
rdoc_options: []
|
32
33
|
require_paths:
|
33
34
|
- lib
|
34
35
|
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - '>='
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
41
|
requirements:
|
43
|
-
- -
|
42
|
+
- - '>='
|
44
43
|
- !ruby/object:Gem::Version
|
45
44
|
version: '0'
|
46
45
|
requirements: []
|
47
46
|
rubyforge_project:
|
48
|
-
rubygems_version:
|
47
|
+
rubygems_version: 2.0.3
|
49
48
|
signing_key:
|
50
|
-
specification_version:
|
49
|
+
specification_version: 4
|
51
50
|
summary: convenience class to create a set of possibly discontiguous IP address range
|
52
51
|
segments, and check if an IP address is in the set.
|
53
52
|
test_files:
|
54
53
|
- test/test_ip_addr_range_set.rb
|
55
|
-
has_rdoc:
|