class Airplay::Devices

Public: Represents an array of devices

Public Class Methods

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

Public Instance Methods

<<(device) click to toggle source

Public: Adds a device to the list

value - The Device

Returns nothing

# File lib/airplay/devices.rb, line 56
def <<(device)
  return if find_by_ip(device.ip)
  @items << device
end
add(name, address) click to toggle source

Public: Adds a device to the pool

name - The name of the device address - The address of the device

Returns nothing

# File lib/airplay/devices.rb, line 44
def add(name, address)
  device = Device.new(name: name, address: address)
  self << device
  device
end
find_by_ip(ip) click to toggle source

Public: Finds a device given an ip

ip - The ip of the device

Returns a Device object

# File lib/airplay/devices.rb, line 33
def find_by_ip(ip)
  find_by_block { |device| device if device.ip == ip }
end
find_by_name(device_name) click to toggle source

Public: Finds a device given a name

device_name - The name of the device

Returns a Device object

# File lib/airplay/devices.rb, line 23
def find_by_name(device_name)
  find_by_block { |device| device if device.name == device_name }
end

Private Instance Methods

find_by_block(&block) click to toggle source

Private: Finds a devices based on a block

&block - The block to be executed

Returns the result of the find on that given block

# File lib/airplay/devices.rb, line 69
def find_by_block(&block)
  @items.find(&block)
end