class Flapjack::Pikelet::HTTP

Constants

TYPES

Public Instance Methods

reload(cfg) click to toggle source

this should only reload if all changes can be applied – will return false to log warning otherwise

Calls superclass method Flapjack::Pikelet::Base#reload
# File lib/flapjack/pikelet.rb, line 190
def reload(cfg)
   # TODO handle bind_address/port changes by changing listeners?
  return false unless @pikelet_class.respond_to?(:reload)
  super(cfg) { @pikelet_class.reload(cfg) }
end
start() { |server| ... } click to toggle source
Calls superclass method Flapjack::Pikelet::Base#start
# File lib/flapjack/pikelet.rb, line 166
def start
  @pikelet_class.instance_variable_set('@config', @config)

  if @config
    bind_address = @config['bind_address']
    port = @config['port']
    port = port.nil? ? nil : port.to_i
    timeout = @config['timeout']
    timeout = timeout.nil? ? 300 : timeout.to_i
  end
  bind_address = '127.0.0.1' if bind_address.nil?
  port = 3001 if (port.nil? || port <= 0 || port > 65535)

  super do
    @pikelet_class.start if @pikelet_class.respond_to?(:start)
    @server = ::Puma::Server.new(@pikelet_class)
    @server.binder.add_tcp_listener(bind_address, port)
    yield @server if block_given?
    @server.run(false) # no background run, use current thread
  end
end
stop() click to toggle source
Calls superclass method Flapjack::Pikelet::Base#stop
# File lib/flapjack/pikelet.rb, line 196
def stop
  super do |thread|
    unless @server.nil?
      Flapjack.logger.info "shutting down server"
      @server.stop(true)  # no background stop, wait for requests to finish
      Flapjack.logger.info "shut down server"
    end
    @pikelet_class.stop(thread) if @pikelet_class.respond_to?(:stop)
  end
end