Class: Docopt
- Inherits:
-
Object
show all
- Defined in:
- lib/docopt.rb
Defined Under Namespace
Classes: Option, UnknownOptionError
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(doc, version = nil, help = true) ⇒ Docopt
Returns a new instance of Docopt.
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/docopt.rb', line 56
def initialize(doc, version=nil, help=true)
@docopts = doc.split(/^ *-|\n *-/)[1..-1].map do |line|
Option.new('-' + line)
end
GetoptLong.new(*docopts.map(&:getopt)).each do |opt, arg|
if help and (opt == '--help' or opt == '-h')
puts doc.strip
exit
elsif version and opt == '--version'
puts version
exit
end
end
end
|
Instance Attribute Details
#docopts ⇒ Object
Returns the value of attribute docopts.
4
5
6
|
# File 'lib/docopt.rb', line 4
def docopts
@docopts
end
|
Instance Method Details
#inspect ⇒ Object
91
92
93
94
95
|
# File 'lib/docopt.rb', line 91
def inspect
@docopts.map do |option|
"#{option.short} #{option.long}=#{option.value.inspect}".strip
end.join("\n")
end
|
#option(name) ⇒ Object
72
73
74
75
76
77
78
|
# File 'lib/docopt.rb', line 72
def option name
option = @docopts.detect do |docopt|
docopt.synonyms.include?(name)
end
raise UnknownOptionError.new("#{name} option not found") unless option
option
end
|
#size ⇒ Object
87
88
89
|
# File 'lib/docopt.rb', line 87
def size
@docopts.size
end
|
#value(name) ⇒ Object
Also known as:
[]
82
83
84
|
# File 'lib/docopt.rb', line 82
def value name
option(name).value
end
|