Class: HWAddr
- Inherits:
-
Object
- Object
- HWAddr
- Defined in:
- lib/hwaddr.rb,
lib/hwaddr/database.rb
Overview
–
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
++
Direct Known Subclasses
Defined Under Namespace
Classes: Database
Class Method Summary collapse
Instance Method Summary collapse
- #=~(other) ⇒ Object
- #group? ⇒ Boolean
-
#initialize(value) ⇒ HWAddr
constructor
A new instance of HWAddr.
- #productor ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(value) ⇒ HWAddr
Returns a new instance of HWAddr.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/hwaddr.rb', line 18 def initialize (value) @string = if value.is_a?(Array) if value.length > 6 raise ArgumentError, "#{value.inspect} is too big for a MAC address" end value.map { |b| "%02x" % b }.join(':') elsif value.is_a?(Integer) array = [] 6.times { array << value & 0xff value >>= 8 } array.map { |b| "%02x" % b }.join(':') else value.to_s end @string.tr! '-', ':' unless HWAddr.valid?(@string) raise ArgumentError, "#{value} isn't an usable MAC address" end end |
Class Method Details
.valid?(text) ⇒ Boolean
14 15 16 |
# File 'lib/hwaddr.rb', line 14 def self.valid? (text) text =~ /^\w\w:\w\w:\w\w(?::\w\w:\w\w:\w\w)?$/ end |
Instance Method Details
#=~(other) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/hwaddr.rb', line 45 def =~ (other) if group? to_s == other.to_s[0, 8] else to_s == other.to_s end end |
#group? ⇒ Boolean
53 54 55 |
# File 'lib/hwaddr.rb', line 53 def group? to_s.length == 8 end |
#productor ⇒ Object
57 58 59 |
# File 'lib/hwaddr.rb', line 57 def productor Database[to_s] end |
#to_s ⇒ Object
61 62 63 |
# File 'lib/hwaddr.rb', line 61 def to_s @string end |