Class: Ouidb::Manufacturer

Inherits:
Object
  • Object
show all
Defined in:
lib/ouidb/manufacturer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Manufacturer

Returns a new instance of Manufacturer.



35
36
37
38
# File 'lib/ouidb/manufacturer.rb', line 35

def initialize(name)
  @name   = name.dup.freeze
  @ranges = Set.new
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



33
34
35
# File 'lib/ouidb/manufacturer.rb', line 33

def name
  @name
end

#rangesObject (readonly)

Returns the value of attribute ranges.



33
34
35
# File 'lib/ouidb/manufacturer.rb', line 33

def ranges
  @ranges
end

Class Method Details

.[](name) ⇒ Object



6
7
8
9
# File 'lib/ouidb/manufacturer.rb', line 6

def self.[](name)
  @all ||= {}
  @all[name] ||= new(name)
end

.as_jsonObject



29
30
31
# File 'lib/ouidb/manufacturer.rb', line 29

def self.as_json
  Hash[@all.map { |name, man| [name, man.ranges.map(&:as_json)] }]
end

.clear!Object



15
16
17
18
# File 'lib/ouidb/manufacturer.rb', line 15

def self.clear!
  @all.clear if @all
  self
end

.load_file!(path) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/ouidb/manufacturer.rb', line 20

def self.load_file!(path)
  clear!
  JSON.parse(path.read).each do |name, ranges|
    man = self[name]
    ranges.each { |range| man.ranges << MacRange.new_by_number(range, man) }
  end
  self
end

.to_jsonObject



11
12
13
# File 'lib/ouidb/manufacturer.rb', line 11

def self.to_json
  JSON.generate(as_json)
end

Instance Method Details

#inspectObject



44
45
46
# File 'lib/ouidb/manufacturer.rb', line 44

def inspect
  "#<Manufacturer ‘#{name}’>"
end

#to_sObject



40
41
42
# File 'lib/ouidb/manufacturer.rb', line 40

def to_s
  name
end