Class: Vangrail::CLI
- Inherits:
-
Object
- Object
- Vangrail::CLI
- Defined in:
- lib/vangrail/cli.rb
Overview
JSON on stdin, JSON on stdout. The HTTP server is the same envelope.
Constant Summary collapse
- USAGE =
<<~TEXT vangrail #{VERSION} vangrail check-input [--text STRING] vangrail check-output [--text STRING] vangrail check-context [--text STRING] vangrail screen vangrail assess [--text STRING] --prior FLOAT [--side input|context|output] vangrail serve [--bind HOST] [--port N] TEXT
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(argv, stdin:, stdout:, stderr:, env:) ⇒ CLI
constructor
A new instance of CLI.
- #run ⇒ Object
Constructor Details
#initialize(argv, stdin:, stdout:, stderr:, env:) ⇒ CLI
Returns a new instance of CLI.
29 30 31 32 33 34 35 |
# File 'lib/vangrail/cli.rb', line 29 def initialize(argv, stdin:, stdout:, stderr:, env:) @argv = argv.dup @stdin = stdin @stdout = stdout @stderr = stderr @env = env end |
Class Method Details
.run(argv, stdin: $stdin, stdout: $stdout, stderr: $stderr, env: ENV) ⇒ Object
25 26 27 |
# File 'lib/vangrail/cli.rb', line 25 def self.run(argv, stdin: $stdin, stdout: $stdout, stderr: $stderr, env: ENV) new(argv, stdin: stdin, stdout: stdout, stderr: stderr, env: env).run end |
Instance Method Details
#run ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/vangrail/cli.rb', line 37 def run command = @argv.shift return usage(0) if command.nil? || %w[-h --help help].include?(command) return version if %w[-v --version version].include?(command) return serve if command == 'serve' name = command.to_s.tr('-', '_') return fail_usage("unknown command #{command}") unless Front::COMMANDS.include?(name) payload = front.dispatch(name, payload_for) write(payload) exit_status(payload) rescue ArgumentError, Error => e @stderr.puts(e.) 1 rescue JSON::ParserError => e @stderr.puts("invalid JSON: #{e.}") 1 end |