Class: Sonos::Device::Base
- Inherits:
-
Object
- Object
- Sonos::Device::Base
- Defined in:
- lib/sonos/device/base.rb
Instance Attribute Summary collapse
-
#group ⇒ Object
readonly
Returns the value of attribute group.
-
#group_master ⇒ Object
Returns the value of attribute group_master.
-
#hardware_version ⇒ Object
readonly
Returns the value of attribute hardware_version.
-
#icon ⇒ Object
readonly
Returns the value of attribute icon.
-
#ip ⇒ Object
readonly
Returns the value of attribute ip.
-
#mac_address ⇒ Object
readonly
Returns the value of attribute mac_address.
-
#model_number ⇒ Object
readonly
Returns the value of attribute model_number.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#serial_number ⇒ Object
readonly
Returns the value of attribute serial_number.
-
#services ⇒ Object
readonly
Returns the value of attribute services.
-
#software_version ⇒ Object
readonly
Returns the value of attribute software_version.
-
#uid ⇒ Object
readonly
Returns the value of attribute uid.
-
#zone_type ⇒ Object
readonly
Returns the value of attribute zone_type.
Class Method Summary collapse
Instance Method Summary collapse
- #data ⇒ Object
- #data=(data) ⇒ Object
-
#initialize(ip, data = nil) ⇒ Base
constructor
A new instance of Base.
-
#model ⇒ String
Get the device’s model.
-
#speaker? ⇒ Boolean
Can this device play music?.
Constructor Details
Instance Attribute Details
#group ⇒ Object (readonly)
Returns the value of attribute group.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def group @group end |
#group_master ⇒ Object
Returns the value of attribute group_master.
9 10 11 |
# File 'lib/sonos/device/base.rb', line 9 def group_master @group_master end |
#hardware_version ⇒ Object (readonly)
Returns the value of attribute hardware_version.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def hardware_version @hardware_version end |
#icon ⇒ Object (readonly)
Returns the value of attribute icon.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def icon @icon end |
#ip ⇒ Object (readonly)
Returns the value of attribute ip.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def ip @ip end |
#mac_address ⇒ Object (readonly)
Returns the value of attribute mac_address.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def mac_address @mac_address end |
#model_number ⇒ Object (readonly)
Returns the value of attribute model_number.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def model_number @model_number end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def name @name end |
#serial_number ⇒ Object (readonly)
Returns the value of attribute serial_number.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def serial_number @serial_number end |
#services ⇒ Object (readonly)
Returns the value of attribute services.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def services @services end |
#software_version ⇒ Object (readonly)
Returns the value of attribute software_version.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def software_version @software_version end |
#uid ⇒ Object (readonly)
Returns the value of attribute uid.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def uid @uid end |
#zone_type ⇒ Object (readonly)
Returns the value of attribute zone_type.
6 7 8 |
# File 'lib/sonos/device/base.rb', line 6 def zone_type @zone_type end |
Class Method Details
.detect(ip) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/sonos/device/base.rb', line 11 def self.detect(ip) data = retrieve_information(ip) model_number = data[:model_number] # TODO: Clean up if Accessory.models.keys.include?(model_number.to_sym) Accessory.new(ip, data) elsif Speaker.models.keys.include?(model_number.to_sym) Speaker.new(ip, data) else raise ArgumentError.new("#{data[:model_number]} not supported") end end |
Instance Method Details
#data ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/sonos/device/base.rb', line 46 def data { name: @name, uid: @uid, serial_number: @serial_number, software_version: @software_version, hardware_version: @hardware_version, zone_type: @zone_type, model_number: @model_number, services: @services } end |
#data=(data) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/sonos/device/base.rb', line 35 def data=(data) @name = data[:name] @uid = data[:uid] @serial_number = data[:serial_number] @software_version = data[:software_version] @hardware_version = data[:hardware_version] @zone_type = data[:zone_type] @model_number = data[:model_number] @services = data[:services] end |
#model ⇒ String
Get the device’s model
61 62 63 |
# File 'lib/sonos/device/base.rb', line 61 def model self.class.models[@model_number.to_sym] end |
#speaker? ⇒ Boolean
Can this device play music?
67 68 69 |
# File 'lib/sonos/device/base.rb', line 67 def speaker? false end |