class LIFX::LAN::TagTable
@api private
Public Class Methods
new(entries: {})
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 7 def initialize(entries: {}) @entries = Hash.new { |h, k| h[k] = {} } entries.each do |k, v| @entries[k] = v end end
Public Instance Methods
delete_entries_with(tag_id: nil, device_id: nil, label: nil)
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 33 def delete_entries_with(tag_id: nil, device_id: nil, label: nil) matching_entries = entries_with(tag_id: tag_id, device_id: device_id, label: label) matching_entries.each do |entry| @entries[entry.device_id].delete(entry.tag_id) end end
entries()
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 44 def entries @entries.values.map(&:values).flatten end
entries_with(tag_id: nil, device_id: nil, label: nil)
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 14 def entries_with(tag_id: nil, device_id: nil, label: nil) entries.select do |entry| ret = [] ret << (entry.tag_id == tag_id) if tag_id ret << (entry.device_id == device_id) if device_id ret << (entry.label == label) if label ret.all? end end
entry_with(**args)
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 24 def entry_with(**args) entries_with(**args).first end
update_table(tag_id: self.tag_id, label: self.label, device_id: self.device_id)
click to toggle source
# File lib/lifx/lan/tag_table.rb, line 28 def update_table(tag_id: self.tag_id, label: self.label, device_id: self.device_id) entry = @entries[device_id][tag_id] ||= Entry.new(tag_id, label, device_id) entry.label = label end