class Hive::Controller::Tv

The TV controller

Public Class Methods

add_exclusion(ex) click to toggle source
# File lib/hive/controller/tv.rb, line 10
def self.add_exclusion ex
  @@exclusion << ex
end

Public Instance Methods

detect() click to toggle source
# File lib/hive/controller/tv.rb, line 14
def detect
  Hive.logger.debug("Checking Hive Mind")
  device_list = Hive.hive_mind.device_details['connected_devices']
  Hive.logger.debug("Device list: #{device_list}")
  devices = []
  if device_list.is_a? Array
    device_list.select { |d| valid? d }.collect do |device|
      Hive.logger.debug("Found TV: #{device.inspect}")
      devices << self.create_device(device)
    end
  else
    raise Hive::Controller::DeviceDetectionFailed
  end
  Hive.logger.debug("Devices: #{devices}")
  devices
end

Private Instance Methods

valid?(device) click to toggle source
# File lib/hive/controller/tv.rb, line 32
def valid? device
  if device['device_type'] == 'Tv'
    @@exclusion.each do |ex|
      match = true
      ex.each_pair do |key, value|
        match = match && device[key.to_s] != value
      end
      return false if ! match
    end
    return true
  else
    false
  end
end