Module: Simple::Httpd::CLI
- Includes:
- CLI
- Defined in:
- lib/simple/httpd/cli.rb
Instance Method Summary collapse
- #logger ⇒ Object
- #routes(*mounts, environment: "development", services: nil) ⇒ Object
-
#start(*mounts, environment: "development", services: nil) ⇒ Object
Runs a simple httpd server.
Instance Method Details
#logger ⇒ Object
12 13 14 |
# File 'lib/simple/httpd/cli.rb', line 12 def logger ::Simple::CLI.logger end |
#routes(*mounts, environment: "development", services: nil) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/simple/httpd/cli.rb', line 61 def routes(*mounts, environment: "development", services: nil) prepare_environment!(environment: environment) app = build_app!(mounts: mounts, services: services) routes = app.route_descriptions logger.info "Found #{routes.count} routes" max_verb_len = routes.map(&:verb).map(&:length).max max_path_len = routes.map(&:path).map(&:length).max routes. sort_by { |route| [route.path, route.verb] }. each { |route| puts format("%#{max_verb_len}s %-#{max_path_len}s %s", route.verb, route.path, route.source_location_str) } end |
#start(*mounts, environment: "development", services: nil) ⇒ Object
Runs a simple httpd server
A mount is either the location of a directory, which would then be mounted at the “/” HTTP location, or a directory followed by a colon and where to mount the directory.
Mounted directories might contain either ruby source code which is then executed or static files to be delivered verbatim. See README.md for more details.
Examples:
PORT=8080 simple-httpd start httpd/root --service=src/to/service.rb \
MyService:/
httpd/assets:assets
serves the content of ./httpd/root on 0.0.0.0/ and the content of httpd/assets on 0.0.0.0/assets.
Options:
--environment=ENV ... the environment setting, which adjusts configuration.
--services=<path>,<path> ... load these ruby files or directories during startup. This
can be used to define service objects.
simple-httpd respects the HOST and PORT environment values to determine the interface and port to listen to. Default values are “127.0.0.1” and 8181.
Each entry in mounts can be either:
-
a mount_point
[ mount_point, path ], e.g.[ "path/to/root", "/"] -
a string denoting a mount_point, e.g. “path/to/root:/”)
-
a string denoting a “/” mount_point (e.g. “path”, which is shorthand for “path:/”)
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/simple/httpd/cli.rb', line 48 def start(*mounts, environment: "development", services: nil) host = ENV["HOST"] || "127.0.0.1" port = Integer(ENV["PORT"] || 8181) prepare_environment!(environment: environment) app = build_app!(mounts: mounts, services: services) logger.info "start to listen on #{mounts.inspect}" ::Simple::Httpd.listen!(app, environment: environment, host: host, port: port) end |