Sha256: b7481de25351db1db7a7f0061b80786cb3b00e67975f926e964602a62389157f

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'net/telnet'
require 'roku-packager/genkey_output'

module RokuPackager
  class KeyGen
    class ConnectionError < StandardError; end
    class GenerationError < StandardError; end

    def initialize(roku_hostname)
      @hostname = roku_hostname
    end

    def create
      dev_id, password = parse(generate)

      if dev_id && password
        [dev_id, password]
      else
        raise GenerationError, 'Error generating credentials'
      end
    end

    def generate
      output_from_connection = ''

      connection.cmd('genkey') do |output|
        output_from_connection << output
      end
    rescue Timeout::Error
      output_from_connection
    end

    def connection
      @connection ||= Net::Telnet::new("Host" => @hostname, "Port" => '8080')
    rescue Errno::ECONNREFUSED
      raise ConnectionError, 'Connection to device was refused. Possibly wrong host.'
    rescue Timeout::Error
      raise ConnectionError, 'Connection to device failed. Host is possibly down.'
    end

    private

    include GenkeyOutput
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roku-packager-0.0.3 lib/roku-packager/key_gen.rb
roku-packager-0.0.1 lib/roku-packager/key_gen.rb