Class: RubyHome::AccessoryInfo

Inherits:
YamlRecord::Base show all
Defined in:
lib/ruby_home/accessory_info.rb

Constant Summary collapse

USERNAME =
-'Pair-Setup'

Instance Attribute Summary

Attributes inherited from YamlRecord::Base

#attributes, #is_created, #is_destroyed

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from YamlRecord::Base

#==, #[], #[]=, adapter, all, #column_names, create, #destroy, #destroyed?, #errors, find_by_attribute, find_by_id, first, #initialize, last, #new_record?, #persisted_attributes, properties, #reload, #save, setup_properties!, source, #to_model, #to_param, #update_attributes, #valid?, validates_each, write_contents

Constructor Details

This class inherits a constructor from YamlRecord::Base

Class Method Details

.instanceObject



16
17
18
# File 'lib/ruby_home/accessory_info.rb', line 16

def self.instance
  first || create
end

Instance Method Details

#add_paired_client(admin: false, identifier:, public_key:) ⇒ Object



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

def add_paired_client(admin: false, identifier: , public_key: )
  paired_clients << { admin: admin, identifier: identifier, public_key: public_key }
  save
end

#paired?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/ruby_home/accessory_info.rb', line 30

def paired?
  paired_clients.any?
end

#remove_paired_client(identifier) ⇒ Object



25
26
27
28
# File 'lib/ruby_home/accessory_info.rb', line 25

def remove_paired_client(identifier)
  paired_clients.delete_if { |h| h[:identifier] == identifier }
  save
end

#signing_keyObject



34
35
36
# File 'lib/ruby_home/accessory_info.rb', line 34

def signing_key
  @signing_key ||= RbNaCl::Signatures::Ed25519::SigningKey.new([signature_key].pack('H*'))
end

#usernameObject



38
39
40
# File 'lib/ruby_home/accessory_info.rb', line 38

def username
  USERNAME
end