Class: WIP::Runner::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/wip/runner/cli.rb

Defined Under Namespace

Classes: Help, Parser, Version

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io = HighLine.new) ⇒ CLI



34
35
36
37
38
39
40
# File 'lib/wip/runner/cli.rb', line 34

def initialize(io = HighLine.new)
  @io     = io
  @parser = Parser.new(io)

  trap('INT')  { quit }
  trap('TERM') { quit }
end

Class Method Details

.allow(path, search) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/wip/runner/cli.rb', line 7

def allow(path, search)
  search.each do |dir|
    extension = File.join(dir, path)
    if File.exist?("#{extension}.rb")
      $:.push(File.join(extension, 'lib'))
      require extension
    end
  end
end

.namespaceObject



29
30
31
# File 'lib/wip/runner/cli.rb', line 29

def namespace
  @namespace || WIP::Runner
end

.namespace=(value) ⇒ Object



25
26
27
# File 'lib/wip/runner/cli.rb', line 25

def namespace=(value)
  @namespace = value
end

.signatureObject



21
22
23
# File 'lib/wip/runner/cli.rb', line 21

def signature
  @signature || 'wip-runner'
end

.signature=(value) ⇒ Object



17
18
19
# File 'lib/wip/runner/cli.rb', line 17

def signature=(value)
  @signature = value
end

Instance Method Details

#quitObject



42
43
44
# File 'lib/wip/runner/cli.rb', line 42

def quit
  exit
end

#run(args = []) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/wip/runner/cli.rb', line 46

def run(args = [])
  recipient = (command(args) || @parser)
  recipient.run(args)
rescue InvalidCommand => e
  @io.say(e.message)
  @io.newline
  @parser.help
end