Class: RubyHome::HTTP::CharacteristicSerializer

Inherits:
Object
  • Object
show all
Includes:
ObjectSerializer
Defined in:
lib/ruby_home/http/serializers/characteristic_serializer.rb

Instance Method Summary collapse

Methods included from ObjectSerializer

#initialize, #root, #serializable_hash, #serialized_json

Instance Method Details

#optional_hash(characteristic) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/ruby_home/http/serializers/characteristic_serializer.rb', line 24

def optional_hash(characteristic)
  Hash.new.tap do |optional_hash|
    if characteristic.value != nil
      optional_hash['value'] = characteristic.value
    end
  end
end

#perms(characteristic) ⇒ Object



18
19
20
21
22
# File 'lib/ruby_home/http/serializers/characteristic_serializer.rb', line 18

def perms(characteristic)
  characteristic.properties.map do |property|
    RubyHome::Characteristic::PROPERTIES[property]
  end.compact
end

#record_hash(characteristic) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/ruby_home/http/serializers/characteristic_serializer.rb', line 8

def record_hash(characteristic)
  {
    'iid' => characteristic.instance_id,
    'type' => characteristic.uuid,
    'perms' => perms(characteristic),
    'format' => characteristic.format,
    'description' => characteristic.description,
  }.merge(optional_hash(characteristic))
end