class Airplay::CLI::Doctor

Constants

DebugDevice

Attributes

devices[RW]

Public Class Methods

new() click to toggle source
# File lib/airplay/cli/doctor.rb, line 15
def initialize
  @devices = []
end

Public Instance Methods

information() click to toggle source
# File lib/airplay/cli/doctor.rb, line 19
      def information
        find_devices!

        devices.each do |device|
          puts <<-EOS.gsub!(" "*12, "")
            Name: #{device.node.name}
            Host: #{device.host}
            Port: #{device.resolved.port}
            Full Name: #{device.node.fullname}
            Iface: #{device.node.interface_name}
            TXT: #{device.resolved.text_record}

          EOS
        end
      end

Private Instance Methods

find_devices!() click to toggle source
# File lib/airplay/cli/doctor.rb, line 37
def find_devices!
  timeout(5) do
    DNSSD.browse!(Airplay::Browser::SEARCH) do |node|
      try_resolving(node)
      break unless node.flags.more_coming?
    end
  end
end
try_resolving(node) click to toggle source
# File lib/airplay/cli/doctor.rb, line 46
def try_resolving(node)
  timeout(5) do
    DNSSD.resolve(node) do |resolved|
      devices << DebugDevice.new(node, resolved)

      break unless resolved.flags.more_coming?
    end
  end
end