Sha256: 86355ef2e1a0d0382c438a48d2bc5a9c6f86d7c43637d82b865cf7661a283fec

Contents?: true

Size: 773 Bytes

Versions: 10

Compression:

Stored size: 773 Bytes

Contents

require 'forwardable'

module Weskit::MP
  class Worker
    extend Forwardable

    attr_reader :debug, :nickname
    def_delegators :@connection, :message, :read, :write

    def connect_and &operate
      @connection.open do
        instance_eval &operate
      end
    end

    def initialize nickname
      @connection = Connection.new self
      @nickname   = nickname
    end

    def login
      message 'login', {:selective_ping => 1, :username => @nickname}
      read ; verify_response :mustlogin
      read ; verify_response :join_lobby
    end

    def verify_response element
      element = @connection.buffer.find(element).first

      unless element
        raise Errors::ResponseError, "Server send node other than '#{element}'"
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
weskit-0.3.6 lib/weskit/mp/worker.rb
weskit-0.3.5 lib/weskit/mp/worker.rb
weskit-0.3.4 lib/weskit/mp/worker.rb
weskit-0.3.3 lib/weskit/mp/worker.rb
weskit-0.3.2 lib/weskit/mp/worker.rb
weskit-0.3.1 lib/weskit/mp/worker.rb
weskit-0.3.0 lib/weskit/mp/worker.rb
weskit-0.2.1 lib/weskit/mp/worker.rb
weskit-0.2.0 lib/weskit/mp/worker.rb
weskit-0.1.0 lib/weskit/mp/worker.rb