Class: Beans::BeanServer

Inherits:
Object
  • Object
show all
Defined in:
lib/beans/bean_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ BeanServer

Returns a new instance of BeanServer.



6
7
8
9
# File 'lib/beans/bean_server.rb', line 6

def initialize(opts={})
  opts[:port] ||= Config.port
  @server = TCPServer.new(opts[:port])
end

Instance Method Details

#respond(&block) ⇒ Object

def in_background_loop &block

  Thread.start do
    loop do
      begin
        block.call
      rescue StandardError => e
        $stderr.puts "#{e.exception}: #{e.message}"
        $stderr.puts e.backtrace
      end
    end
  end
end


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/beans/bean_server.rb', line 26

def respond &block

  #puts "Listening for bean counters on port #{opts[:port]}..."

  loop do
    Thread.start(@server.accept) do |client|
      begin
        response = block.call( client.gets )
        client.puts response
        client.close
      rescue StandardError => e
        $stderr.puts "#{e.exception}: #{e.message}"
        $stderr.puts e.backtrace
      end
    end
  end

end