class Falcon::Command::Host

Implements the `falcon host` command. Designed for deployment.

Manages a {Controller::Host} instance which is responsible for running applications in a production environment.

Public Instance Methods

call() click to toggle source

Prepare the environment and run the controller.

# File lib/falcon/command/host.rb, line 66
def call
        Console.logger.info(self) do |buffer|
                buffer.puts "Falcon Host v#{VERSION} taking flight!"
                buffer.puts "- Configuration: #{@paths.join(', ')}"
                buffer.puts "- To terminate: Ctrl-C or kill #{Process.pid}"
                buffer.puts "- To reload: kill -HUP #{Process.pid}"
        end
        
        begin
                Bundler.require(:preload)
        rescue Bundler::GemfileNotFound
                # Ignore.
        end
        
        if GC.respond_to?(:compact)
                GC.compact
        end
        
        self.controller.run
end
configuration() click to toggle source

Generate a configuration based on the specified {paths}.

# File lib/falcon/command/host.rb, line 49
def configuration
        configuration = Configuration.new
        
        @paths.each do |path|
                path = File.expand_path(path)
                configuration.load_file(path)
        end
        
        return configuration
end
container_class() click to toggle source

The container class to use.

# File lib/falcon/command/host.rb, line 44
def container_class
        Async::Container.best_container_class
end
controller() click to toggle source

Prepare a new controller for the command.

# File lib/falcon/command/host.rb, line 61
def controller
        Controller::Host.new(self)
end