Class: SleipnirAPI::CLI::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/sleipnir_api/cli/base.rb

Overview

:nodoc:

Direct Known Subclasses

Grepnir

Instance Method Summary collapse

Constructor Details

#initialize(stdin = nil, stdout = nil, stderr = nil, exit_when_done = true) ⇒ Base

Returns a new instance of Base.



15
16
17
18
19
20
# File 'lib/sleipnir_api/cli/base.rb', line 15

def initialize(stdin = nil, stdout = nil, stderr = nil, exit_when_done = true)
  @stdin = stdin
  @stdout = stdout
  @stderr = stderr
  @exit_when_done = exit_when_done
end

Instance Method Details

#done!(status) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/sleipnir_api/cli/base.rb', line 22

def done!(status)
  if @exit_when_done
    exit status
  else
    raise SleipnirAPI::CLI::Exit, status
  end
end

#execute(args) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/sleipnir_api/cli/base.rb', line 55

def execute(args)
  begin
    execute0(args)
  rescue SleipnirAPI::CLI::Exit => e
    return e.status
  end
end

#execute0(args) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/sleipnir_api/cli/base.rb', line 63

def execute0(args)
  ctx = prepare(args)

  begin
    match = SleipnirAPI.connect do |pnir|
      perform(ctx, pnir)
    end
    done!(match ? 0 : 1)
  rescue SleipnirAPI::ConnectError => e
    stderr.puts "Sleipnir does not running."
    done!(2)
  end
end

#initialize_context(ctx) ⇒ Object



42
43
# File 'lib/sleipnir_api/cli/base.rb', line 42

def initialize_context(ctx)
end

#prepare(args) ⇒ Object



48
49
50
51
52
53
# File 'lib/sleipnir_api/cli/base.rb', line 48

def prepare(args)
  ctx = OpenStruct.new
  initialize_context(ctx)
  process_arguments(ctx, args)
  ctx
end

#process_arguments(ctx, args) ⇒ Object



45
46
# File 'lib/sleipnir_api/cli/base.rb', line 45

def process_arguments(ctx, args)
end

#stderrObject



38
39
40
# File 'lib/sleipnir_api/cli/base.rb', line 38

def stderr
  @stderr || $stderr
end

#stdinObject



30
31
32
# File 'lib/sleipnir_api/cli/base.rb', line 30

def stdin
  @stdin || $stdin
end

#stdoutObject



34
35
36
# File 'lib/sleipnir_api/cli/base.rb', line 34

def stdout
  @stdout || $stdout
end