Class: IORegClass

Inherits:
Object
  • Object
show all
Defined in:
lib/apple_data/ioreg.rb

Overview

A single IOKit class

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass_name) ⇒ IORegClass

Returns a new instance of IORegClass.



25
26
27
28
# File 'lib/apple_data/ioreg.rb', line 25

def initialize(klass_name)
  @name = klass_name
  @parents = []
end

Instance Attribute Details

#descriptionObject

Returns the value of attribute description.



23
24
25
# File 'lib/apple_data/ioreg.rb', line 23

def description
  @description
end

#known_namesObject

Returns the value of attribute known_names.



23
24
25
# File 'lib/apple_data/ioreg.rb', line 23

def known_names
  @known_names
end

#nameObject

Returns the value of attribute name.



23
24
25
# File 'lib/apple_data/ioreg.rb', line 23

def name
  @name
end

#parentsObject

Returns the value of attribute parents.



23
24
25
# File 'lib/apple_data/ioreg.rb', line 23

def parents
  @parents
end

Class Method Details

.for_name(name) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/apple_data/ioreg.rb', line 30

def self.for_name(name)
  @instances ||= {}

  @instances[name] = IORegClass.new name unless @instances.key? name

  @instances[name]
end

.load_one(hash) ⇒ Object



42
43
44
45
46
47
# File 'lib/apple_data/ioreg.rb', line 42

def self.load_one(hash)
  instance = for_name hash['name']
  instance.description = hash['description']
  instance.parents = hash['parents']
  instance.known_names = (hash['known_names'] || []).sort
end

.valuesObject



38
39
40
# File 'lib/apple_data/ioreg.rb', line 38

def self.values
  @instances.values.sort_by(&:name)
end

Instance Method Details

#to_hObject



49
50
51
# File 'lib/apple_data/ioreg.rb', line 49

def to_h
  { 'name' => @name, 'description' => @description, 'parents' => @parents, 'known_names' => @known_names }
end

#user_client?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/apple_data/ioreg.rb', line 53

def user_client?
  @parents.include? 'IOUserClient'
end