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.
@@ -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
+
@@ -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: []