Class: RubyHome::Accessory

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_home/accessory.rb

Constant Summary collapse

@@all =
AccessoryCollection.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAccessory

Returns a new instance of Accessory.



15
16
17
18
19
# File 'lib/ruby_home/accessory.rb', line 15

def initialize
  @services = ServiceCollection.new
  @id = next_available_accessory_id
  @@all << self
end

Instance Attribute Details

#idObject (readonly)

Returns the value of attribute id.



21
22
23
# File 'lib/ruby_home/accessory.rb', line 21

def id
  @id
end

#servicesObject (readonly)

Returns the value of attribute services.



21
22
23
# File 'lib/ruby_home/accessory.rb', line 21

def services
  @services
end

Class Method Details

.allObject



7
8
9
# File 'lib/ruby_home/accessory.rb', line 7

def self.all
  @@all
end

.resetObject



11
12
13
# File 'lib/ruby_home/accessory.rb', line 11

def self.reset
  @@all = AccessoryCollection.new
end

Instance Method Details

#characteristicsObject



23
24
25
# File 'lib/ruby_home/accessory.rb', line 23

def characteristics
  services.characteristics
end

#contains_instance_id?(instance_id) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
# File 'lib/ruby_home/accessory.rb', line 37

def contains_instance_id?(instance_id)
  services.any? do |service|
    service.contains_instance_id?(instance_id)
  end
end

#has_accessory_information?Boolean

Returns:

  • (Boolean)


31
32
33
34
35
# File 'lib/ruby_home/accessory.rb', line 31

def has_accessory_information?
  services.any? do |service|
    service.name == :accessory_information
  end
end

#next_available_instance_idObject



27
28
29
# File 'lib/ruby_home/accessory.rb', line 27

def next_available_instance_id
  (largest_instance_id || 0) + 1
end