class Ouidb::MacRange
Attributes
manufacturer[R]
Public Class Methods
[](addr)
click to toggle source
# File lib/ouidb/mac_range.rb, line 9 def [](addr) if self == MacRange Range36[addr] || Range24[addr] else all[str_to_int(addr)] end end
all()
click to toggle source
# File lib/ouidb/mac_range.rb, line 17 def all raise NotImplementedError if self == MacRange # Must be called on a subclass @all ||= {} end
find_or_create(addr, manufacturer = nil)
click to toggle source
# File lib/ouidb/mac_range.rb, line 22 def find_or_create(addr, manufacturer = nil) raise NotImplementedError if self == MacRange # Must be called on a subclass addr = str_to_int(addr) all[addr] ||= new(addr, manufacturer) end
new(addr, manufacturer)
click to toggle source
# File lib/ouidb/mac_range.rb, line 37 def initialize(addr, manufacturer) raise NotImplementedError if self.class == MacRange # Must be called on a subclass @addr = addr @manufacturer = manufacturer end
new_by_number(addr, manufacturer)
click to toggle source
# File lib/ouidb/mac_range.rb, line 28 def new_by_number(addr, manufacturer) klass = addr < 0 ? Range36 : Range24 addr = addr.abs klass.all[addr] = klass.new(addr, manufacturer) end
str_to_int(str)
click to toggle source
# File lib/ouidb/mac_range.rb, line 4 def str_to_int(str) raise NotImplementedError if self == MacRange # Must be called on a subclass str.gsub(/[^a-f\d]/i, '')[0...(self::SIZE / 4)].to_i(16) end
Public Instance Methods
as_json()
click to toggle source
# File lib/ouidb/mac_range.rb, line 48 def as_json @addr end
inspect()
click to toggle source
# File lib/ouidb/mac_range.rb, line 52 def inspect "#<Range#{self.class::SIZE} #{to_s}>" end
to_s()
click to toggle source
# File lib/ouidb/mac_range.rb, line 43 def to_s size = self.class::SIZE @addr.to_s(16).rjust(size / 4, '0').ljust(12, '0').chars.each_slice(2).map(&:join).join(':') << '/' << size.to_s << ' ' << manufacturer.to_s end