class Proxy
Implements the falcon proxy
command.
Manages a Controller::Proxy
instance which is responsible for proxing incoming requests.
Definitions
options { ... }
The command line options.
Signature
-
attribute
Samovar::Options
Implementation
options do
option "--bind <address>", "Bind to the given hostname/address", default: "https://[::]:443"
option "-t/--timeout <duration>", "Specify the maximum time to wait for non-blocking operations.", type: Float, default: nil
end
many :paths
One or more paths to the configuration files.
Signature
-
attribute
Array(String)
def call
Prepare the environment and run the controller.
Implementation
def call
Console.logger.info(self) do |buffer|
buffer.puts "Falcon Proxy v#{VERSION} taking flight!"
buffer.puts "- Binding to: #{@options[:bind]}"
buffer.puts "- To terminate: Ctrl-C or kill #{Process.pid}"
buffer.puts "- To reload: kill -HUP #{Process.pid}"
self.resolved_paths do |path|
buffer.puts "- Loading configuration from #{path}"
end
end
Async::Service::Controller.run(self.configuration)
end
def endpoint(**options)
The endpoint to bind to.
Implementation
def endpoint(**options)
Async::HTTP::Endpoint.parse(@options[:bind], timeout: @options[:timeout], **options)
end