Class: Forgitter::CLI::OptionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/forgitter/cli/option_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOptionParser

Returns a new instance of OptionParser.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/forgitter/cli/option_parser.rb', line 10

def initialize
  # The options specified on the command line will be collected in *options*.
  # We set default values here.
  @options = Forgitter::DEFAULT_OPTIONS

  @opt_parser = ::OptionParser.new do |opts|
    opts.banner = 'Usage: forgitter [-l] TAG1 [TAG2 ...]'

    opts.on('-l', '--list',
            'Instead of generating a .gitignore, list the ignorefiles that match the tags.') do
      options[:list] = true
    end

    # No argument, shows at tail.  This will print an options summary.
    # Try it and see!
    opts.on_tail('-h', '--help', 'Show this message') do
      puts opts
      exit
    end

    # Another typical switch to print the version.
    opts.on_tail('-v', '--version', 'Show version') do
      puts Forgitter::VERSION
      exit
    end
  end

end

Instance Attribute Details

#opt_parserObject

Returns the value of attribute opt_parser.



8
9
10
# File 'lib/forgitter/cli/option_parser.rb', line 8

def opt_parser
  @opt_parser
end

#optionsObject

Returns the value of attribute options.



8
9
10
# File 'lib/forgitter/cli/option_parser.rb', line 8

def options
  @options
end

Instance Method Details

#helpObject



39
40
41
# File 'lib/forgitter/cli/option_parser.rb', line 39

def help
  opt_parser.help
end

#parse(args) ⇒ Object

Return a structure describing the options.



46
47
48
49
50
51
52
53
54
# File 'lib/forgitter/cli/option_parser.rb', line 46

def parse(args)
  begin      
    opt_parser.parse!(args)
  rescue ::OptionParser::InvalidOption => e
    puts help
    exit(1)
  end
  options
end