Module: Anvil::Task::Options

Included in:
Anvil::Task
Defined in:
lib/anvil/task/options.rb

Overview

Cli options parsing definition

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#parser_blockObject (readonly)

Returns the value of attribute parser_block.



9
10
11
# File 'lib/anvil/task/options.rb', line 9

def parser_block
  @parser_block
end

Instance Method Details

#build_parser(&block) ⇒ Object



20
21
22
23
24
25
# File 'lib/anvil/task/options.rb', line 20

def build_parser(&block)
  parser = Anvil::Parser.new
  parser.task = self
  configure_parser(parser, &block)
  parser
end

#configure_parser(parser, &block) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/anvil/task/options.rb', line 27

def configure_parser(parser, &block)
  block ||= proc {}

  if description
    parser.separator ''
    parser.separator description
  end

  return parser unless parser.detect_options(&block)

  parser.separator ''
  parser.separator 'Available options: '
  parser.instance_eval(&block)
  parser
end

#helpObject



11
12
13
# File 'lib/anvil/task/options.rb', line 11

def help
  parser.help
end

#parse_options!(arguments) ⇒ Object



43
44
45
46
# File 'lib/anvil/task/options.rb', line 43

def parse_options!(arguments)
  parser.parse!(arguments)
  arguments << parser.options
end

#parser(&block) ⇒ Object



15
16
17
18
# File 'lib/anvil/task/options.rb', line 15

def parser(&block)
  @parser_block = block
  @parser ||= build_parser(&block)
end