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