File tree 1 file changed +16
-14
lines changed
1 file changed +16
-14
lines changed Original file line number Diff line number Diff line change @@ -176,9 +176,7 @@ def mask(prefixlen)
176
176
def include? ( other )
177
177
other = coerce_other ( other )
178
178
return false unless other . family == family
179
- range = to_range
180
- other = other . to_range
181
- range . begin <= other . begin && range . end >= other . end
179
+ begin_addr <= other . begin_addr && end_addr >= other . end_addr
182
180
end
183
181
alias === include?
184
182
@@ -406,17 +404,6 @@ def hash
406
404
407
405
# Creates a Range object for the network address.
408
406
def to_range
409
- begin_addr = ( @addr & @mask_addr )
410
-
411
- case @family
412
- when Socket ::AF_INET
413
- end_addr = ( @addr | ( IN4MASK ^ @mask_addr ) )
414
- when Socket ::AF_INET6
415
- end_addr = ( @addr | ( IN6MASK ^ @mask_addr ) )
416
- else
417
- raise AddressFamilyError , "unsupported address family"
418
- end
419
-
420
407
self . class . new ( begin_addr , @family ) ..self . class . new ( end_addr , @family )
421
408
end
422
409
@@ -497,6 +484,21 @@ def zone_id=(zid)
497
484
498
485
protected
499
486
487
+ def begin_addr
488
+ @addr & @mask_addr
489
+ end
490
+
491
+ def end_addr
492
+ case @family
493
+ when Socket ::AF_INET
494
+ @addr | ( IN4MASK ^ @mask_addr )
495
+ when Socket ::AF_INET6
496
+ @addr | ( IN6MASK ^ @mask_addr )
497
+ else
498
+ raise AddressFamilyError , "unsupported address family"
499
+ end
500
+ end
501
+
500
502
# Set +@addr+, the internal stored ip address, to given +addr+. The
501
503
# parameter +addr+ is validated using the first +family+ member,
502
504
# which is +Socket::AF_INET+ or +Socket::AF_INET6+.
You can’t perform that action at this time.
0 commit comments