ipaddress_link_local 0.8.3
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/.document +5 -0
- data/.rock.yml +5 -0
- data/.travis.yml +21 -0
- data/CHANGELOG.rdoc +115 -0
- data/CONTRIBUTING.md +39 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +995 -0
- data/Rakefile +68 -0
- data/VERSION +1 -0
- data/ipaddress_link_local.gemspec +82 -0
- data/lib/ipaddress/ipv4.rb +1114 -0
- data/lib/ipaddress/ipv6.rb +909 -0
- data/lib/ipaddress/mongoid.rb +75 -0
- data/lib/ipaddress/prefix.rb +265 -0
- data/lib/ipaddress/version.rb +3 -0
- data/lib/ipaddress.rb +227 -0
- data/tasks/jeweler.rake +16 -0
- data/test/ipaddress/ipv4_test.rb +625 -0
- data/test/ipaddress/ipv6_test.rb +450 -0
- data/test/ipaddress/mongoid_test.rb +70 -0
- data/test/ipaddress/prefix_test.rb +153 -0
- data/test/ipaddress_test.rb +82 -0
- data/test/test_helper.rb +37 -0
- metadata +179 -0
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class IPAddressTest < Minitest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@valid_ipv4 = "172.16.10.1/24"
|
7
|
+
@valid_ipv6 = "2001:db8::8:800:200c:417a/64"
|
8
|
+
@valid_mapped = "::13.1.68.3"
|
9
|
+
|
10
|
+
@invalid_ipv4 = "10.0.0.256"
|
11
|
+
@invalid_ipv6 = ":1:2:3:4:5:6:7"
|
12
|
+
@invalid_mapped = "::1:2.3.4"
|
13
|
+
|
14
|
+
@valid_ipv4_uint32 = [4294967295, # 255.255.255.255
|
15
|
+
167772160, # 10.0.0.0
|
16
|
+
3232235520, # 192.168.0.0
|
17
|
+
0]
|
18
|
+
|
19
|
+
@invalid_ipv4_uint32 = [4294967296, # 256.0.0.0
|
20
|
+
"A294967295", # Invalid uINT
|
21
|
+
-1] # Invalid
|
22
|
+
|
23
|
+
|
24
|
+
@ipv4class = IPAddress::IPv4
|
25
|
+
@ipv6class = IPAddress::IPv6
|
26
|
+
@mappedclass = IPAddress::IPv6::Mapped
|
27
|
+
|
28
|
+
@invalid_ipv4 = ["10.0.0.256",
|
29
|
+
"10.0.0.0.0",
|
30
|
+
"10.0.0",
|
31
|
+
"10.0"]
|
32
|
+
|
33
|
+
@valid_ipv4_range = ["10.0.0.1-254",
|
34
|
+
"10.0.1-254.0",
|
35
|
+
"10.1-254.0.0"]
|
36
|
+
|
37
|
+
@method = Module.method("IPAddress")
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_method_IPAddress
|
41
|
+
|
42
|
+
assert_instance_of @ipv4class, @method.call(@valid_ipv4)
|
43
|
+
assert_instance_of @ipv6class, @method.call(@valid_ipv6)
|
44
|
+
assert_instance_of @mappedclass, @method.call(@valid_mapped)
|
45
|
+
|
46
|
+
assert_raises(ArgumentError) {@method.call(@invalid_ipv4)}
|
47
|
+
assert_raises(ArgumentError) {@method.call(@invalid_ipv6)}
|
48
|
+
assert_raises(ArgumentError) {@method.call(@invalid_mapped)}
|
49
|
+
|
50
|
+
assert_instance_of @ipv4class, @method.call(@valid_ipv4_uint32[0])
|
51
|
+
assert_instance_of @ipv4class, @method.call(@valid_ipv4_uint32[1])
|
52
|
+
assert_instance_of @ipv4class, @method.call(@valid_ipv4_uint32[2])
|
53
|
+
assert_instance_of @ipv4class, @method.call(@valid_ipv4_uint32[3])
|
54
|
+
|
55
|
+
assert_raises(ArgumentError) {@method.call(@invalid_ipv4_uint32[0])}
|
56
|
+
assert_raises(ArgumentError) {@method.call(@invalid_ipv4_uint32[1])}
|
57
|
+
assert_raises(ArgumentError) {@method.call(@invalid_ipv4_uint32[2])}
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_module_method_valid?
|
62
|
+
assert_equal true, IPAddress::valid?("10.0.0.1")
|
63
|
+
assert_equal true, IPAddress::valid?("10.0.0.0")
|
64
|
+
assert_equal true, IPAddress::valid?("2002::1")
|
65
|
+
assert_equal true, IPAddress::valid?("dead:beef:cafe:babe::f0ad")
|
66
|
+
assert_equal false, IPAddress::valid?("10.0.0.256")
|
67
|
+
assert_equal false, IPAddress::valid?("10.0.0.0.0")
|
68
|
+
assert_equal false, IPAddress::valid?("10.0.0")
|
69
|
+
assert_equal false, IPAddress::valid?("10.0")
|
70
|
+
assert_equal false, IPAddress::valid?("2002:::1")
|
71
|
+
assert_equal false, IPAddress::valid?("2002:516:2:200")
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_module_method_valid_ipv4_netmark?
|
76
|
+
assert_equal true, IPAddress::valid_ipv4_netmask?("255.255.255.0")
|
77
|
+
assert_equal false, IPAddress::valid_ipv4_netmask?("10.0.0.1")
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require "codeclimate-test-reporter"
|
4
|
+
CodeClimate::TestReporter.start
|
5
|
+
|
6
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
7
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
8
|
+
require 'ipaddress'
|
9
|
+
|
10
|
+
if Minitest.const_defined?('Test')
|
11
|
+
# We're on Minitest 5+. Nothing to do here.
|
12
|
+
else
|
13
|
+
# Minitest 4 doesn't have Minitest::Test yet.
|
14
|
+
Minitest::Test = MiniTest::Unit::TestCase
|
15
|
+
end
|
16
|
+
|
17
|
+
module Minitest
|
18
|
+
|
19
|
+
class Test
|
20
|
+
|
21
|
+
def self.must(name, &block)
|
22
|
+
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
23
|
+
defined = instance_method(test_name) rescue false
|
24
|
+
raise "#{test_name} is already defined in #{self}" if defined
|
25
|
+
if block_given?
|
26
|
+
define_method(test_name, &block)
|
27
|
+
else
|
28
|
+
define_method(test_name) do
|
29
|
+
flunk "No implementation provided for #{name}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ipaddress_link_local
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- bluemonk
|
8
|
+
- mikemackintosh
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-11-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - '='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 10.5.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 10.5.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: minitest
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 5.8.4
|
49
|
+
- - "~>"
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '5.8'
|
52
|
+
type: :development
|
53
|
+
prerelease: false
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 5.8.4
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.8'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: pry
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.10.1
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.10.1
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: travis
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.8.2
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.8.2
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: jeweler
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.0.1
|
97
|
+
type: :development
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.0.1
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: codeclimate-test-reporter
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
description: |-
|
119
|
+
IPAddress is a Ruby library designed to make manipulation
|
120
|
+
of IPv4 and IPv6 addresses both powerful and simple. It mantains
|
121
|
+
a layer of compatibility with Ruby's own IPAddr, while
|
122
|
+
addressing many of its issues.
|
123
|
+
This gem has link-local features - only published to get gem dependencies working.
|
124
|
+
email: ceresa@gmail.com
|
125
|
+
executables: []
|
126
|
+
extensions: []
|
127
|
+
extra_rdoc_files:
|
128
|
+
- LICENSE.txt
|
129
|
+
- README.rdoc
|
130
|
+
files:
|
131
|
+
- ".document"
|
132
|
+
- ".rock.yml"
|
133
|
+
- ".travis.yml"
|
134
|
+
- CHANGELOG.rdoc
|
135
|
+
- CONTRIBUTING.md
|
136
|
+
- Gemfile
|
137
|
+
- LICENSE.txt
|
138
|
+
- README.rdoc
|
139
|
+
- Rakefile
|
140
|
+
- VERSION
|
141
|
+
- ipaddress_link_local.gemspec
|
142
|
+
- lib/ipaddress.rb
|
143
|
+
- lib/ipaddress/ipv4.rb
|
144
|
+
- lib/ipaddress/ipv6.rb
|
145
|
+
- lib/ipaddress/mongoid.rb
|
146
|
+
- lib/ipaddress/prefix.rb
|
147
|
+
- lib/ipaddress/version.rb
|
148
|
+
- tasks/jeweler.rake
|
149
|
+
- test/ipaddress/ipv4_test.rb
|
150
|
+
- test/ipaddress/ipv6_test.rb
|
151
|
+
- test/ipaddress/mongoid_test.rb
|
152
|
+
- test/ipaddress/prefix_test.rb
|
153
|
+
- test/ipaddress_test.rb
|
154
|
+
- test/test_helper.rb
|
155
|
+
homepage: https://github.com/bluemonk/ipaddress
|
156
|
+
licenses:
|
157
|
+
- MIT
|
158
|
+
metadata: {}
|
159
|
+
post_install_message:
|
160
|
+
rdoc_options: []
|
161
|
+
require_paths:
|
162
|
+
- lib
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
requirements: []
|
174
|
+
rubyforge_project:
|
175
|
+
rubygems_version: 2.5.1
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: IPv4/IPv6 address manipulation library
|
179
|
+
test_files: []
|