Class: Julewire::Core::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/core/cli.rb,
lib/julewire/core/cli/tail.rb,
lib/julewire/core/cli/doctor.rb,
lib/julewire/core/cli/transcode.rb,
lib/julewire/core/cli/log_formats.rb,
lib/julewire/core/cli/line_helpers.rb,
lib/julewire/core/cli/log_formats/console_text.rb,
lib/julewire/core/cli/log_formats/record_decoder.rb,
lib/julewire/core/cli/log_formats/core_json_decoder.rb,
lib/julewire/core/cli/log_formats/core_json_encoder.rb

Defined Under Namespace

Modules: LineHelpers, LogFormats Classes: Doctor, Tail, Transcode

Constant Summary collapse

INTERRUPTED_STATUS =
130

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv:, stdin:, stdout:, stderr:) ⇒ CLI

Returns a new instance of CLI.



14
15
16
17
18
19
# File 'lib/julewire/core/cli.rb', line 14

def initialize(argv:, stdin:, stdout:, stderr:)
  @argv = argv.dup
  @stdin = stdin
  @stdout = stdout
  @stderr = stderr
end

Class Method Details

.call(argv: ARGV, stdin: $stdin, stdout: $stdout, stderr: $stderr) ⇒ Object



9
10
11
# File 'lib/julewire/core/cli.rb', line 9

def call(argv: ARGV, stdin: $stdin, stdout: $stdout, stderr: $stderr)
  new(argv: argv, stdin: stdin, stdout: stdout, stderr: stderr).call
end

Instance Method Details

#callObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/julewire/core/cli.rb', line 21

def call
  case command = @argv.shift
  when "tail" then tail
  when "transcode" then transcode
  when "doctor" then doctor
  when "-v", "--version", "version" then version
  when nil, "-h", "--help", "help" then help
  else
    fail_with("unknown command #{command.inspect}")
  end
rescue Interrupt
  INTERRUPTED_STATUS
rescue ArgumentError, Errno::ENOENT => e
  fail_with(e.message)
end