class MinecraftPi::Socket

Public Class Methods

new(address: 'localhost', port: 4711) click to toggle source
# File lib/minecraft-pi/socket.rb, line 14
def initialize(address: 'localhost', port: 4711)
  @socket = ::TCPSocket.new address.to_s, port.to_i
  self
end

Public Instance Methods

read() click to toggle source
# File lib/minecraft-pi/socket.rb, line 29
def read
  @socket.gets.chomp.tap { |reply| STDERR.puts "=> #{reply}" }
end
request(message, attempt = 1) click to toggle source
# File lib/minecraft-pi/socket.rb, line 34
def request(message, attempt = 1)
  write message.to_s
  read.tap { |reply| raise FailError if reply == 'Fail' }

rescue FailError
  STDERR.puts "retry #{attempt}"
  sleep 0.1
  request(message, attempt.to_i + 1)
end
write(message) click to toggle source
# File lib/minecraft-pi/socket.rb, line 20
def write(message)
  message.to_s.tap do |m|
    STDERR.puts m
    @socket.puts m
  end
  nil
end