blackwinter-ipaddress 0.8.0 → 0.8.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rake/testtask'
4
- require 'rake/rdoctask'
4
+ require 'rdoc/task'
5
5
 
6
6
  $:.unshift(File.expand_path('../lib', __FILE__))
7
7
  require 'ipaddress'
@@ -22,6 +22,7 @@ begin
22
22
  a layer of compatibility with Ruby's own IPAddr, while
23
23
  addressing many of its issues.
24
24
  EOD
25
+ gem.add_dependency 'ruby-nuggets', '>= 0.8.9'
25
26
  end
26
27
  rescue LoadError
27
28
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.0.1
data/lib/ipaddress.rb CHANGED
@@ -13,7 +13,7 @@
13
13
  #++
14
14
 
15
15
  require 'ipaddress/conversions'
16
- require 'ipaddress/lazy'
16
+ require 'nuggets/util/lazy_attr'
17
17
 
18
18
  class IPAddress
19
19
 
@@ -23,12 +23,12 @@ class IPAddress
23
23
  include Conversions
24
24
  extend Conversions
25
25
 
26
- include Lazy
26
+ include Util::LazyAttr
27
27
 
28
- VERSION = '0.8.0'
28
+ VERSION = '0.8.0.1'
29
29
  NAME = 'IPAddress'
30
- GEM = 'ipaddress'
31
- AUTHORS = ['Marco Ceresa <ceresa@ieee.org>']
30
+ GEM = 'blackwinter-ipaddress'
31
+ AUTHORS = ['Marco Ceresa <ceresa@ieee.org>', 'Jens Wille <jens.wille@uni-koeln.de>']
32
32
 
33
33
  class << self
34
34
 
@@ -309,7 +309,7 @@ class IPAddress
309
309
  # #=> "0010000000000001000011011011100000 [...] "
310
310
  #
311
311
  def bits
312
- lazy(:bits) { data2bits(data) }
312
+ lazy_attr(:bits) { data2bits(data) }
313
313
  end
314
314
 
315
315
  #
@@ -336,7 +336,7 @@ class IPAddress
336
336
  # #=> true
337
337
  #
338
338
  def network?
339
- lazy(:network_p) { i = prefix.to_i; to_i | i == i }
339
+ lazy_attr(:network_p) { i = prefix.to_i; to_i | i == i }
340
340
  end
341
341
 
342
342
  #
@@ -354,7 +354,7 @@ class IPAddress
354
354
  # #=> "2001:db8::/32"
355
355
  #
356
356
  def network
357
- lazy(:network, false) { network? ? self : at(0) }
357
+ lazy_attr(:network, false) { network? ? self : at(0) }
358
358
  end
359
359
 
360
360
  #
@@ -371,7 +371,7 @@ class IPAddress
371
371
  # #=> 42540766411282592856903984951653826560
372
372
  #
373
373
  def network_i
374
- lazy(:network_i) { to_i & prefix.to_i }
374
+ lazy_attr(:network_i) { to_i & prefix.to_i }
375
375
  end
376
376
 
377
377
  #
@@ -383,7 +383,7 @@ class IPAddress
383
383
  # #=> "172.16.10.255"
384
384
  #
385
385
  def broadcast
386
- lazy(:broadcast, false) { at(-1) }
386
+ lazy_attr(:broadcast, false) { at(-1) }
387
387
  end
388
388
 
389
389
  #
@@ -404,7 +404,7 @@ class IPAddress
404
404
  # a helper to other functions.
405
405
  #
406
406
  def broadcast_i
407
- lazy(:broadcast_i) { network_i + size - 1 }
407
+ lazy_attr(:broadcast_i) { network_i + size - 1 }
408
408
  end
409
409
 
410
410
  #
@@ -423,7 +423,7 @@ class IPAddress
423
423
  # #=> 18446744073709551616
424
424
  #
425
425
  def size
426
- lazy(:size) { 2 ** prefix.host_prefix }
426
+ lazy_attr(:size) { 2 ** prefix.host_prefix }
427
427
  end
428
428
 
429
429
  #
@@ -595,8 +595,9 @@ class IPAddress
595
595
  #
596
596
  # If +new_prefix+ is less than 1, returns 0.0.0.0/0
597
597
  #
598
- def supernet(num)
599
- new_prefix(prefix.superprefix(num)).network
598
+ def supernet(num, relax = false)
599
+ superprefix = prefix.superprefix(num, relax)
600
+ new_prefix(superprefix).network if superprefix
600
601
  end
601
602
 
602
603
  def exact_supernet(*other)
@@ -685,16 +686,41 @@ class IPAddress
685
686
 
686
687
  alias_method :+, :summarize
687
688
 
688
- def range
689
- lazy(:range) { network_i..broadcast_i }
689
+ def range(other)
690
+ raise TypeError, 'must be same version' if other.version != version
691
+
692
+ return [self] unless other > self
693
+
694
+ nets, n, l, m = [], to_i, other.to_i, self.class::MAX_PREFIX
695
+
696
+ until n > l
697
+ i = self.class.parse_i(n, m)
698
+ f = i.bits.rindex('1') || -1
699
+
700
+ while s = i.supernet(f += 1, true)
701
+ unless s.broadcast_i > l
702
+ i = s
703
+ break
704
+ end
705
+ end
706
+
707
+ nets << i
708
+ n = i.broadcast_i + 1
709
+ end
710
+
711
+ nets
690
712
  end
691
713
 
692
- def range_i
693
- lazy(:range_i) { range.to_a }
714
+ def span
715
+ lazy_attr(:span) { network_i..broadcast_i }
716
+ end
717
+
718
+ def span_i
719
+ lazy_attr(:span_i) { span.to_a }
694
720
  end
695
721
 
696
722
  def boundaries
697
- lazy(:boundaries) { [(r = range).first, r.last] }
723
+ lazy_attr(:boundaries) { [(s = span).first, s.last] }
698
724
  end
699
725
 
700
726
  def each_i(first = nil, last = nil)
@@ -768,10 +794,10 @@ class IPAddress
768
794
  end
769
795
 
770
796
  def at(index)
771
- r = range
797
+ s = span
772
798
 
773
- index += index < 0 ? r.last + 1 : r.first
774
- each(index) { |i| return i } if r.include?(index)
799
+ index += index < 0 ? s.last + 1 : s.first
800
+ each(index) { |i| return i } if s.include?(index)
775
801
 
776
802
  nil
777
803
  end
@@ -797,7 +823,7 @@ class IPAddress
797
823
  # #=> "192.168.100.1"
798
824
  #
799
825
  def first
800
- lazy(:first, false) { at(1) }
826
+ lazy_attr(:first, false) { at(1) }
801
827
  end
802
828
 
803
829
  #
@@ -822,7 +848,11 @@ class IPAddress
822
848
  # #=> "192.168.100.254"
823
849
  #
824
850
  def last
825
- lazy(:last, false) { at(-2) }
851
+ lazy_attr(:last, false) { at(-2) }
852
+ end
853
+
854
+ def succ
855
+ lazy_attr(:succ, false) { self.class.parse_i(to_i + 1, prefix) }
826
856
  end
827
857
 
828
858
  #
@@ -840,7 +870,7 @@ class IPAddress
840
870
  # #=> "10.0.0.6"]
841
871
  #
842
872
  def hosts
843
- lazy(:hosts) { hosts = []; each_host { |i| hosts << i }; hosts }
873
+ lazy_attr(:hosts) { hosts = []; each_host { |i| hosts << i }; hosts }
844
874
  end
845
875
 
846
876
  def mapped
@@ -900,7 +930,7 @@ class IPAddress
900
930
  end
901
931
 
902
932
  def hash
903
- lazy(:hash) { [to_i, prefix.hash].hash }
933
+ lazy_attr(:hash) { [to_i, prefix.hash].hash }
904
934
  end
905
935
 
906
936
  alias_method :eql?, :==
@@ -27,7 +27,7 @@ class IPAddress
27
27
  24 => /\A110/ # Class C, D and E, from 192.0.0.0 to 255.255.255.254
28
28
  }
29
29
 
30
- part = %r{(?: 25[0-5] | 2[0-4]\d | 1\d\d | [1-9]\d | \d )}x
30
+ part = %r{ (?: 25[0-5] | 2[0-4]\d | 1\d\d | [1-9]\d | \d ) }x
31
31
 
32
32
  INTERNAL_RE = %r{ (?: #{part} \. ){3} #{part} }xo
33
33
 
@@ -40,7 +40,7 @@ class IPAddress
40
40
 
41
41
  MAX_PREFIX = Prefix::MAX
42
42
 
43
- PREFIX_RE = %r{\A(?:[12]?\d|3[0-2])\z}
43
+ PREFIX_RE = %r{ \A (?: [12]?\d | 3[0-2] ) \z }x
44
44
 
45
45
  class << self
46
46
 
@@ -181,6 +181,10 @@ class IPAddress
181
181
  @address, @octets = ip, addr2ary(ip)
182
182
  end
183
183
 
184
+ def version
185
+ 4
186
+ end
187
+
184
188
  #
185
189
  # Returns the address portion of the IPv4 object
186
190
  # as a string.
@@ -191,7 +195,7 @@ class IPAddress
191
195
  # #=> "172.16.100.4"
192
196
  #
193
197
  def address
194
- lazy(:address) { ary2addr(octets) }
198
+ lazy_attr(:address) { ary2addr(octets) }
195
199
  end
196
200
 
197
201
  #
@@ -207,7 +211,7 @@ class IPAddress
207
211
  # #=> IPAddress::Prefix32
208
212
  #
209
213
  def prefix
210
- lazy(:prefix, false) { Prefix.new(@_prefix) }
214
+ lazy_attr(:prefix, false) { Prefix.new(@_prefix) }
211
215
  end
212
216
 
213
217
  #
@@ -219,7 +223,7 @@ class IPAddress
219
223
  # #=> "255.255.252.0"
220
224
  #
221
225
  def netmask
222
- lazy(:netmask) { prefix.to_ip }
226
+ lazy_attr(:netmask) { prefix.to_ip }
223
227
  end
224
228
 
225
229
  #
@@ -250,7 +254,7 @@ class IPAddress
250
254
  # #=> [172, 16, 100, 4]
251
255
  #
252
256
  def octets
253
- lazy(:octets) { int2ary(to_i) }
257
+ lazy_attr(:octets) { int2ary(to_i) }
254
258
  end
255
259
 
256
260
  alias_method :groups, :octets
@@ -282,7 +286,7 @@ class IPAddress
282
286
  # #=> 167772160
283
287
  #
284
288
  def to_i
285
- lazy(:int) { ary2int(octets) }
289
+ lazy_attr(:int) { ary2int(octets) }
286
290
  end
287
291
 
288
292
  alias_method :u32, :to_i
@@ -308,7 +312,7 @@ class IPAddress
308
312
  # a.puts binary_data
309
313
  #
310
314
  def data
311
- lazy(:data) { int2data(to_i) }
315
+ lazy_attr(:data) { int2data(to_i) }
312
316
  end
313
317
 
314
318
  #
@@ -346,7 +350,7 @@ class IPAddress
346
350
  # #=> "50.100.16.172.in-addr.arpa"
347
351
  #
348
352
  def reverse
349
- lazy(:reverse) { "#{ary2addr(octets.reverse)}.in-addr.arpa" }
353
+ lazy_attr(:reverse) { "#{ary2addr(octets.reverse)}.in-addr.arpa" }
350
354
  end
351
355
 
352
356
  alias_method :arpa, :reverse
@@ -362,7 +366,7 @@ class IPAddress
362
366
  # #=> true
363
367
  #
364
368
  def private?
365
- lazy(:private_p) { self.class.private_nets.any? { |i| i.include?(self) } }
369
+ lazy_attr(:private_p) { self.class.private_nets.any? { |i| i.include?(self) } }
366
370
  end
367
371
 
368
372
  #
@@ -378,7 +382,7 @@ class IPAddress
378
382
  # #=> true
379
383
  #
380
384
  def a?
381
- lazy(:a_p) { CLASSFUL[8] === bits }
385
+ lazy_attr(:a_p) { CLASSFUL[8] === bits }
382
386
  end
383
387
 
384
388
  #
@@ -394,7 +398,7 @@ class IPAddress
394
398
  # #=> true
395
399
  #
396
400
  def b?
397
- lazy(:b_p) { CLASSFUL[16] === bits }
401
+ lazy_attr(:b_p) { CLASSFUL[16] === bits }
398
402
  end
399
403
 
400
404
  #
@@ -410,7 +414,7 @@ class IPAddress
410
414
  # #=> true
411
415
  #
412
416
  def c?
413
- lazy(:c_p) { CLASSFUL[24] === bits }
417
+ lazy_attr(:c_p) { CLASSFUL[24] === bits }
414
418
  end
415
419
 
416
420
  #
@@ -425,7 +429,7 @@ class IPAddress
425
429
  # #=> "ac10:0a01"
426
430
  #
427
431
  def to_ipv6
428
- lazy(:to_ipv6) { '%.4x:%.4x' % int2data(to_i).unpack('n2') }
432
+ lazy_attr(:to_ipv6) { '%.4x:%.4x' % int2data(to_i).unpack('n2') }
429
433
  end
430
434
 
431
435
  end
@@ -75,7 +75,7 @@ class IPAddress
75
75
  #
76
76
  # Format string to pretty print IPv6 addresses
77
77
  #
78
- IN6FORMAT = ('%.4x:' * 8).chop
78
+ IN6FORMAT = Array.new(8, '%.4x').join(':')
79
79
 
80
80
  Prefix = Prefix128
81
81
 
@@ -205,6 +205,10 @@ class IPAddress
205
205
  end
206
206
  end
207
207
 
208
+ def version
209
+ 6
210
+ end
211
+
208
212
  #
209
213
  # Returns the IPv6 address in uncompressed form:
210
214
  #
@@ -214,7 +218,7 @@ class IPAddress
214
218
  # #=> "2001:0db8:0000:0000:0008:0800:200c:417a"
215
219
  #
216
220
  def address
217
- lazy(:address) { IN6FORMAT % groups }
221
+ lazy_attr(:address) { IN6FORMAT % groups }
218
222
  end
219
223
 
220
224
  #
@@ -226,7 +230,7 @@ class IPAddress
226
230
  # #=> "2001:db8::8:800:200c:417a"
227
231
  #
228
232
  def compressed
229
- lazy(:compressed) {
233
+ lazy_attr(:compressed) {
230
234
  r1, r2, q = /\b0(?::0)+\b/, /:{3,}/, '::'
231
235
 
232
236
  a, b = [s = groups.map { |i| i.to_s(16) }.join(':'), s.reverse].map! { |t|
@@ -246,7 +250,7 @@ class IPAddress
246
250
  # #=> 64
247
251
  #
248
252
  def prefix
249
- lazy(:prefix, false) { Prefix.new(@netmask) }
253
+ lazy_attr(:prefix, false) { Prefix.new(@netmask) }
250
254
  end
251
255
 
252
256
  #
@@ -259,7 +263,7 @@ class IPAddress
259
263
  # #=> [8193, 3512, 0, 0, 8, 2048, 8204, 16762]
260
264
  #
261
265
  def groups
262
- lazy(:groups) { self.class.groups(@ip) }
266
+ lazy_attr(:groups) { self.class.groups(@ip) }
263
267
  end
264
268
 
265
269
  #
@@ -274,7 +278,7 @@ class IPAddress
274
278
  # Not to be confused with the similar IPv6#to_hex method.
275
279
  #
276
280
  def hexs
277
- lazy(:hexs) { address.split(':') }
281
+ lazy_attr(:hexs) { address.split(':') }
278
282
  end
279
283
 
280
284
  #
@@ -287,7 +291,7 @@ class IPAddress
287
291
  # #=> "20010db80000000000080800200c417a"
288
292
  #
289
293
  def to_hex
290
- lazy(:to_hex) { hexs.join('') }
294
+ lazy_attr(:to_hex) { hexs.join('') }
291
295
  end
292
296
 
293
297
  #
@@ -326,7 +330,7 @@ class IPAddress
326
330
  # #=> 42540766411282592856906245548098208122
327
331
  #
328
332
  def to_i
329
- lazy(:int) { to_hex.hex }
333
+ lazy_attr(:int) { to_hex.hex }
330
334
  end
331
335
 
332
336
  alias_method :u128, :to_i
@@ -351,7 +355,7 @@ class IPAddress
351
355
  # a.puts binary_data
352
356
  #
353
357
  def data
354
- lazy(:data) { groups.pack('n8') }
358
+ lazy_attr(:data) { groups.pack('n8') }
355
359
  end
356
360
 
357
361
  #
@@ -388,7 +392,7 @@ class IPAddress
388
392
  # #=> "f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.5.0.5.0.e.f.f.3.ip6.arpa"
389
393
  #
390
394
  def reverse
391
- lazy(:reverse) { "#{to_hex.gsub(/(?=.)/, '.').reverse}ip6.arpa" }
395
+ lazy_attr(:reverse) { "#{to_hex.gsub(/(?=.)/, '.').reverse}ip6.arpa" }
392
396
  end
393
397
 
394
398
  alias_method :arpa, :reverse
@@ -402,7 +406,7 @@ class IPAddress
402
406
  # #=> "2001-0db8-0000-0000-0008-0800-200c-417a.ipv6-literal.net"
403
407
  #
404
408
  def literal
405
- lazy(:literal) { "#{address.tr(':', '-')}.ipv6-literal.net" }
409
+ lazy_attr(:literal) { "#{address.tr(':', '-')}.ipv6-literal.net" }
406
410
  end
407
411
 
408
412
  #
@@ -411,7 +415,7 @@ class IPAddress
411
415
  # See IPAddress::IPv6::Unspecified for more information
412
416
  #
413
417
  def unspecified?
414
- lazy(:unspecified_p) { prefix.max? && compressed == '::' }
418
+ lazy_attr(:unspecified_p) { prefix.max? && compressed == '::' }
415
419
  end
416
420
 
417
421
  #
@@ -420,7 +424,7 @@ class IPAddress
420
424
  # See IPAddress::IPv6::Loopback for more information
421
425
  #
422
426
  def loopback?
423
- lazy(:loopback_p) { prefix.max? && compressed == '::1' }
427
+ lazy_attr(:loopback_p) { prefix.max? && compressed == '::1' }
424
428
  end
425
429
 
426
430
  #
@@ -429,7 +433,7 @@ class IPAddress
429
433
  # See IPAddress::IPv6::Mapped for more information
430
434
  #
431
435
  def mapped?
432
- lazy(:mapped_p) { to_i >> 32 == 0xffff }
436
+ lazy_attr(:mapped_p) { to_i >> 32 == 0xffff }
433
437
  end
434
438
 
435
439
  #
@@ -25,7 +25,7 @@ class IPAddress
25
25
  include Conversions
26
26
  extend Conversions
27
27
 
28
- include Lazy
28
+ include Util::LazyAttr
29
29
 
30
30
  #
31
31
  # Creates a new prefix object for 32 bits IPv4 addresses /
@@ -74,7 +74,7 @@ class IPAddress
74
74
  # "0000000000000000000000000000000000000000000000000000000000000000"
75
75
  #
76
76
  def bits
77
- lazy(:bits) { '1' * prefix << '0' * host_prefix }
77
+ lazy_attr(:bits) { '1' * prefix << '0' * host_prefix }
78
78
  end
79
79
 
80
80
  #
@@ -92,7 +92,7 @@ class IPAddress
92
92
  # #=> 340282366920938463444927863358058659840
93
93
  #
94
94
  def to_i
95
- lazy(:int) { bits.to_i(2) }
95
+ lazy_attr(:int) { bits.to_i(2) }
96
96
  end
97
97
 
98
98
  #
@@ -140,39 +140,37 @@ class IPAddress
140
140
  # #=> 32
141
141
  #
142
142
  def host_prefix
143
- lazy(:host_prefix) { max - prefix }
143
+ lazy_attr(:host_prefix) { max - prefix }
144
144
  end
145
145
 
146
146
  def max
147
- lazy(:max) { self.class::MAX }
147
+ lazy_attr(:max) { self.class::MAX }
148
148
  end
149
149
 
150
150
  def max?
151
- lazy(:max_p) { prefix == max }
151
+ lazy_attr(:max_p) { prefix == max }
152
152
  end
153
153
 
154
154
  def prev
155
- lazy(:prev) { prefix - 1 }
155
+ lazy_attr(:prev) { prefix - 1 }
156
156
  end
157
157
 
158
158
  def next
159
- lazy(:next) { prefix + 1 unless max? }
159
+ lazy_attr(:next) { prefix + 1 unless max? }
160
160
  end
161
161
 
162
- def superprefix(num)
163
- validate_prefix(num = [0, num].max, nil, prev)
164
- num
162
+ def superprefix(num, relax = false)
163
+ validate_prefix([0, num].max, nil, prev, relax) or return
165
164
  end
166
165
 
167
- def subprefix(num)
168
- validate_prefix(num, prefix)
166
+ def subprefix(num, relax = false)
167
+ validate_prefix(num, prefix, relax) or return
169
168
  [2 ** (max - num), 2 ** (num - prefix)]
170
169
  end
171
170
 
172
- def validate_prefix(num, first = nil, last = nil)
173
- unless (range = (first || 0)..(last || max)).include?(num)
174
- raise ArgumentError, "Prefix must be in range #{range}, got: #{num}"
175
- end
171
+ def validate_prefix(num, first = nil, last = nil, relax = false)
172
+ return num if (range = (first || 0)..(last || max)).include?(num)
173
+ raise ArgumentError, "Prefix must be in range #{range}, got: #{num}" unless relax
176
174
  end
177
175
 
178
176
  end
@@ -209,7 +207,7 @@ class IPAddress
209
207
  # #=> "255.255.255.0"
210
208
  #
211
209
  def to_ip
212
- lazy(:ip) { bits2addr(bits) }
210
+ lazy_attr(:ip) { bits2addr(bits) }
213
211
  end
214
212
 
215
213
  #
@@ -222,7 +220,7 @@ class IPAddress
222
220
  # #=> [255, 255, 255, 0]
223
221
  #
224
222
  def octets
225
- lazy(:octets) { addr2ary(to_ip) }
223
+ lazy_attr(:octets) { addr2ary(to_ip) }
226
224
  end
227
225
 
228
226
  #
@@ -251,7 +249,7 @@ class IPAddress
251
249
  # #=> "0.0.0.255"
252
250
  #
253
251
  def hostmask
254
- lazy(:hostmask) { int2addr(~to_i) }
252
+ lazy_attr(:hostmask) { int2addr(~to_i) }
255
253
  end
256
254
 
257
255
  end
metadata CHANGED
@@ -1,23 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blackwinter-ipaddress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Ceresa
8
- - Jens Wille
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
 
13
- date: 2012-07-20 00:00:00 +02:00
12
+ date: 2012-11-30 00:00:00 +01:00
14
13
  default_executable:
15
- dependencies: []
16
-
17
- description: " IPAddress 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.\n"
18
- email:
19
- - ceresa@gmail.com
20
- - jens.wille@uni-koeln.de
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ruby-nuggets
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.8.9
24
+ version:
25
+ description: " IPAddress 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.\n"
26
+ email: ceresa@gmail.com
21
27
  executables: []
22
28
 
23
29
  extensions: []
@@ -32,20 +38,18 @@ files:
32
38
  - README.rdoc
33
39
  - Rakefile
34
40
  - VERSION
35
- - ipaddress.gemspec
36
41
  - lib/ipaddress.rb
42
+ - lib/ipaddress/conversions.rb
37
43
  - lib/ipaddress/ipv4.rb
38
44
  - lib/ipaddress/ipv6.rb
39
45
  - lib/ipaddress/prefix.rb
40
- - lib/ipaddress/conversions.rb
41
- - lib/ipaddress/lazy.rb
42
46
  - test/ipaddress/ipv4_test.rb
43
47
  - test/ipaddress/ipv6_test.rb
44
48
  - test/ipaddress/prefix_test.rb
45
49
  - test/ipaddress_test.rb
46
50
  - test/test_helper.rb
47
51
  has_rdoc: true
48
- homepage: https://github.com/blackwinter/ipaddress
52
+ homepage: http://github.com/bluemonk/ipaddress
49
53
  licenses: []
50
54
 
51
55
  post_install_message:
@@ -71,6 +75,6 @@ rubyforge_project:
71
75
  rubygems_version: 1.3.5
72
76
  signing_key:
73
77
  specification_version: 3
74
- summary: IPv4/IPv6 addresses manipulation library [Incompatible fork]
78
+ summary: IPv4/IPv6 addresses manipulation library
75
79
  test_files: []
76
80
 
data/ipaddress.gemspec DELETED
@@ -1,57 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{blackwinter-ipaddress}
8
- s.version = "0.8.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ['Marco Ceresa', 'Jens Wille']
12
- s.date = %q{2012-07-20}
13
- s.description = %q{ IPAddress is a Ruby library designed to make manipulation
14
- of IPv4 and IPv6 addresses both powerful and simple. It mantains
15
- a layer of compatibility with Ruby's own IPAddr, while
16
- addressing many of its issues.
17
- }
18
- s.email = %w[ceresa@gmail.com jens.wille@uni-koeln.de]
19
- s.extra_rdoc_files = [
20
- "LICENSE",
21
- "README.rdoc"
22
- ]
23
- s.files = [
24
- ".document",
25
- "CHANGELOG.rdoc",
26
- "LICENSE",
27
- "README.rdoc",
28
- "Rakefile",
29
- "VERSION",
30
- "ipaddress.gemspec",
31
- "lib/ipaddress.rb",
32
- "lib/ipaddress/ipv4.rb",
33
- "lib/ipaddress/ipv6.rb",
34
- "lib/ipaddress/prefix.rb",
35
- "lib/ipaddress/conversions.rb",
36
- "lib/ipaddress/lazy.rb",
37
- "test/ipaddress/ipv4_test.rb",
38
- "test/ipaddress/ipv6_test.rb",
39
- "test/ipaddress/prefix_test.rb",
40
- "test/ipaddress_test.rb",
41
- "test/test_helper.rb"
42
- ]
43
- s.homepage = %q{https://github.com/blackwinter/ipaddress}
44
- s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.6.2}
46
- s.summary = %q{IPv4/IPv6 addresses manipulation library [Incompatible fork]}
47
-
48
- if s.respond_to? :specification_version then
49
- s.specification_version = 3
50
-
51
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
- else
53
- end
54
- else
55
- end
56
- end
57
-
@@ -1,19 +0,0 @@
1
- class IPAddress
2
-
3
- module Lazy
4
-
5
- private
6
-
7
- def lazy(attr, freeze = true)
8
- class << self; self; end.class_eval { attr_reader attr }
9
-
10
- value =
11
- instance_variable_get(name = "@#{attr}") ||
12
- instance_variable_set(name, yield)
13
-
14
- freeze ? value.freeze : value
15
- end
16
-
17
- end
18
-
19
- end