ipaccess 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ipaccess/ip_access.rb +1 -0
- data/lib/ipaccess/ip_access_list.rb +8 -7
- data/lib/ipaccess/socket.rb +2 -0
- data/spec/ip_access_list_spec.rb +13 -0
- metadata +2 -1
data/lib/ipaccess/ip_access.rb
CHANGED
@@ -20,7 +20,6 @@
|
|
20
20
|
#
|
21
21
|
#++
|
22
22
|
|
23
|
-
require 'ipaddr'
|
24
23
|
require 'socket'
|
25
24
|
require 'resolv'
|
26
25
|
require 'netaddr'
|
@@ -255,9 +254,6 @@ class IPAccessList < NetAddr::Tree
|
|
255
254
|
# number - immediate generation
|
256
255
|
return [NetAddr::CIDR.create(obj)] if obj.is_a?(Numeric)
|
257
256
|
|
258
|
-
# IPAddr - fetch IP/mask string
|
259
|
-
obj = obj.native.inspect.split[1].chomp('>')[5..-1] if obj.is_a?(IPAddr)
|
260
|
-
|
261
257
|
# object containing socket member (e.g. Net::HTTP) - fetch socket
|
262
258
|
if obj.respond_to?(:socket)
|
263
259
|
obj = obj.socket
|
@@ -345,7 +341,7 @@ class IPAccessList < NetAddr::Tree
|
|
345
341
|
:reserved,
|
346
342
|
:multicast)
|
347
343
|
else
|
348
|
-
raise ArgumentError, "
|
344
|
+
raise ArgumentError, "provided symbol is unknown: #{obj.to_s}"
|
349
345
|
end
|
350
346
|
return obj.map { |addr| NetAddr::CIDR.create(addr) } if obj.is_a?(Array)
|
351
347
|
end
|
@@ -353,8 +349,13 @@ class IPAccessList < NetAddr::Tree
|
|
353
349
|
# URI or something that responds to host method - fetch string
|
354
350
|
obj = obj.host if obj.respond_to?(:host)
|
355
351
|
|
356
|
-
#
|
357
|
-
|
352
|
+
# objects of external classes
|
353
|
+
case obj.class.name.to_sym
|
354
|
+
when :IPAddr # IPAddr - fetch IP/mask string
|
355
|
+
obj = obj.native.inspect.split[1].chomp('>')[5..-1]
|
356
|
+
when :IPAddrList # IPAddrList - pass array to parse
|
357
|
+
return obj_to_cidr(obj.to_a)
|
358
|
+
end
|
358
359
|
|
359
360
|
# string or similar - immediate generation
|
360
361
|
if obj.respond_to?(:to_s)
|
data/spec/ip_access_list_spec.rb
CHANGED
@@ -3,7 +3,14 @@ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
|
3
3
|
require 'uri'
|
4
4
|
require 'socket'
|
5
5
|
require 'rubygems'
|
6
|
+
require 'ipaddr'
|
6
7
|
require 'ipaccess'
|
8
|
+
require 'ipaccess/socket'
|
9
|
+
|
10
|
+
begin
|
11
|
+
require 'ipaddr_list'
|
12
|
+
rescue LoadError
|
13
|
+
end
|
7
14
|
|
8
15
|
describe IPAccessList do
|
9
16
|
|
@@ -41,6 +48,12 @@ describe IPAccessList do
|
|
41
48
|
lambda { IPAccessList.new [IPAddr.new("127.0.0.1"), IPAddr.new("192.168.1.1")] }.should_not raise_error
|
42
49
|
end
|
43
50
|
|
51
|
+
if Kernel.const_defined?(:IPAddrList)
|
52
|
+
it "should take an IPAddrList object as parameter" do
|
53
|
+
lambda { IPAccessList.new IPAddrList.new(["127.0.0.1", "192.168.1.1"]) }.should_not raise_error
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
44
57
|
it "should take an array of numbers as parameter" do
|
45
58
|
lambda { IPAccessList.new [2130706433,2130706434] }.should_not raise_error
|
46
59
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ipaccess
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Pawe\xC5\x82 Wilk"
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/ipaccess/ip_access_patches.rb
|
40
40
|
- lib/ipaccess/netaddr_patch.rb
|
41
41
|
- lib/ipaccess/sockets.rb
|
42
|
+
- lib/ipaccess/socket.rb
|
42
43
|
- lib/ipaccess/ghost_doc.rb
|
43
44
|
- lib/ipaccess/ghost_doc_acl.rb
|
44
45
|
- docs/LGPL-LICENSE
|