Sha256: 58c6ee2516c00197bce9856b3c7782e9a526446c960057912c7677eafe6def51

Contents?: true

Size: 671 Bytes

Versions: 2

Compression:

Stored size: 671 Bytes

Contents

require 'em-simple_telnet'
require 'logging'

require_relative 'response'

class Radiodan
class MPD
class Connection
  include Logging
  
  def initialize(options={})
    @port = options[:port] || 6600
    @host = options[:host] || 'localhost'
  end
  
  def cmd(command, options={})
    options = {match: /^(OK|ACK)/}.merge(options)
    response = nil
    
    EM::P::SimpleTelnet.new(host: @host, port: @port, prompt: /^(OK|ACK)(.*)$/) do |host|
      host.waitfor(/^OK MPD \d{1,2}\.\d{1,2}\.\d{1,2}$/)
      logger.debug command
      result = host.cmd(command, options).strip
      response = Response.new(result, command)
    end
    
    response
  end
end
end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
radiodan-1.0.1 lib/radiodan/adapter/mpd/connection.rb
radiodan-1.0.0 lib/radiodan/adapter/mpd/connection.rb