optparse 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +264 -0
  3. data/doc/optparse/argument_converters.rdoc +380 -0
  4. data/doc/optparse/creates_option.rdoc +7 -0
  5. data/doc/optparse/option_params.rdoc +509 -0
  6. data/doc/optparse/ruby/argument_keywords.rb +6 -0
  7. data/doc/optparse/ruby/argument_strings.rb +6 -0
  8. data/doc/optparse/ruby/argv.rb +2 -0
  9. data/doc/optparse/ruby/array.rb +6 -0
  10. data/doc/optparse/ruby/basic.rb +17 -0
  11. data/doc/optparse/ruby/block.rb +9 -0
  12. data/doc/optparse/ruby/collected_options.rb +8 -0
  13. data/doc/optparse/ruby/custom_converter.rb +9 -0
  14. data/doc/optparse/ruby/date.rb +6 -0
  15. data/doc/optparse/ruby/datetime.rb +6 -0
  16. data/doc/optparse/ruby/decimal_integer.rb +7 -0
  17. data/doc/optparse/ruby/decimal_numeric.rb +7 -0
  18. data/doc/optparse/ruby/default_values.rb +8 -0
  19. data/doc/optparse/ruby/descriptions.rb +15 -0
  20. data/doc/optparse/ruby/explicit_array_values.rb +9 -0
  21. data/doc/optparse/ruby/explicit_hash_values.rb +9 -0
  22. data/doc/optparse/ruby/false_class.rb +6 -0
  23. data/doc/optparse/ruby/float.rb +6 -0
  24. data/doc/optparse/ruby/help.rb +18 -0
  25. data/doc/optparse/ruby/help_banner.rb +7 -0
  26. data/doc/optparse/ruby/help_format.rb +25 -0
  27. data/doc/optparse/ruby/help_program_name.rb +7 -0
  28. data/doc/optparse/ruby/integer.rb +6 -0
  29. data/doc/optparse/ruby/long_names.rb +9 -0
  30. data/doc/optparse/ruby/long_optional.rb +6 -0
  31. data/doc/optparse/ruby/long_required.rb +6 -0
  32. data/doc/optparse/ruby/long_simple.rb +9 -0
  33. data/doc/optparse/ruby/long_with_negation.rb +6 -0
  34. data/doc/optparse/ruby/match_converter.rb +9 -0
  35. data/doc/optparse/ruby/matched_values.rb +6 -0
  36. data/doc/optparse/ruby/method.rb +11 -0
  37. data/doc/optparse/ruby/missing_options.rb +12 -0
  38. data/doc/optparse/ruby/mixed_names.rb +12 -0
  39. data/doc/optparse/ruby/name_abbrev.rb +9 -0
  40. data/doc/optparse/ruby/no_abbreviation.rb +10 -0
  41. data/doc/optparse/ruby/numeric.rb +6 -0
  42. data/doc/optparse/ruby/object.rb +6 -0
  43. data/doc/optparse/ruby/octal_integer.rb +7 -0
  44. data/doc/optparse/ruby/optional_argument.rb +9 -0
  45. data/doc/optparse/ruby/parse.rb +13 -0
  46. data/doc/optparse/ruby/parse_bang.rb +13 -0
  47. data/doc/optparse/ruby/proc.rb +13 -0
  48. data/doc/optparse/ruby/regexp.rb +6 -0
  49. data/doc/optparse/ruby/required_argument.rb +9 -0
  50. data/doc/optparse/ruby/shellwords.rb +6 -0
  51. data/doc/optparse/ruby/short_names.rb +9 -0
  52. data/doc/optparse/ruby/short_optional.rb +6 -0
  53. data/doc/optparse/ruby/short_range.rb +6 -0
  54. data/doc/optparse/ruby/short_required.rb +6 -0
  55. data/doc/optparse/ruby/short_simple.rb +9 -0
  56. data/doc/optparse/ruby/string.rb +6 -0
  57. data/doc/optparse/ruby/terminator.rb +6 -0
  58. data/doc/optparse/ruby/time.rb +6 -0
  59. data/doc/optparse/ruby/true_class.rb +6 -0
  60. data/doc/optparse/ruby/uri.rb +6 -0
  61. data/doc/optparse/tutorial.rdoc +835 -0
  62. data/lib/optparse/kwargs.rb +2 -0
  63. data/lib/optparse.rb +33 -75
  64. metadata +62 -7
  65. data/Rakefile +0 -10
  66. data/optparse.gemspec +0 -33
  67. data/rakelib/changelogs.rake +0 -34
  68. data/rakelib/epoch.rake +0 -5
  69. data/rakelib/version.rake +0 -47
@@ -0,0 +1,18 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on(
4
+ '-x', '--xxx',
5
+ 'Adipiscing elit. Aenean commodo ligula eget.',
6
+ 'Aenean massa. Cum sociis natoque penatibus',
7
+ )
8
+ parser.on(
9
+ '-y', '--yyy YYY',
10
+ 'Lorem ipsum dolor sit amet, consectetuer.'
11
+ )
12
+ parser.on(
13
+ '-z', '--zzz [ZZZ]',
14
+ 'Et magnis dis parturient montes, nascetur',
15
+ 'ridiculus mus. Donec quam felis, ultricies',
16
+ 'nec, pellentesque eu, pretium quis, sem.',
17
+ )
18
+ parser.parse!
@@ -0,0 +1,7 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.banner = "Usage: ruby help_banner.rb"
4
+ parser.parse!
5
+
6
+
7
+
@@ -0,0 +1,25 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new(
3
+ 'ruby help_format.rb [options]', # Banner
4
+ 20, # Width of options field
5
+ ' ' * 2 # Indentation
6
+ )
7
+ parser.on(
8
+ '-x', '--xxx',
9
+ 'Adipiscing elit. Aenean commodo ligula eget.',
10
+ 'Aenean massa. Cum sociis natoque penatibus',
11
+ )
12
+ parser.on(
13
+ '-y', '--yyy YYY',
14
+ 'Lorem ipsum dolor sit amet, consectetuer.'
15
+ )
16
+ parser.on(
17
+ '-z', '--zzz [ZZZ]',
18
+ 'Et magnis dis parturient montes, nascetur',
19
+ 'ridiculus mus. Donec quam felis, ultricies',
20
+ 'nec, pellentesque eu, pretium quis, sem.',
21
+ )
22
+ parser.parse!
23
+
24
+
25
+
@@ -0,0 +1,7 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.program_name = 'help_program_name.rb'
4
+ parser.parse!
5
+
6
+
7
+
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--integer=INTEGER', Integer) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx', 'Long name') do |value|
4
+ p ['-xxx', value]
5
+ end
6
+ parser.on('--y1%', '--z2#', "Two long names") do |value|
7
+ p ['--y1% or --z2#', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx [XXX]', 'Long name with optional argument') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx XXX', 'Long name with required argument') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx', 'One long name') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('--y1%', '--z2#', 'Two long names (aliases)') do |value|
7
+ p ['--y1% or --z2#', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--[no-]binary', 'Long name with negation') do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse/date'
2
+ parser = OptionParser.new
3
+ parser.accept(:capitalize, /\w*/) do |value|
4
+ value.capitalize
5
+ end
6
+ parser.on('--capitalize XXX', :capitalize) do |value|
7
+ p [value, value.class]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx XXX', /foo/i, 'Matched values') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,11 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ def xxx_handler(value)
4
+ p ['Handler method for -xxx called with value:', value]
5
+ end
6
+ parser.on('--xxx', 'Option with no argument', method(:xxx_handler))
7
+ def yyy_handler(value)
8
+ p ['Handler method for -yyy called with value:', value]
9
+ end
10
+ parser.on('--yyy YYY', 'Option with required argument', method(:yyy_handler))
11
+ parser.parse!
@@ -0,0 +1,12 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x', '--xxx', 'Short and long, no argument')
4
+ parser.on('-yYYY', '--yyy', 'Short and long, required argument')
5
+ parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument')
6
+ options = {}
7
+ parser.parse!(into: options)
8
+ required_options = [:xxx, :zzz]
9
+ missing_options = required_options - options.keys
10
+ unless missing_options.empty?
11
+ fail "Missing required options: #{missing_options}"
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x', '--xxx', 'Short and long, no argument') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('-yYYY', '--yyy', 'Short and long, required argument') do |value|
7
+ p ['--yyy', value]
8
+ end
9
+ parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument') do |value|
10
+ p ['--zzz', value]
11
+ end
12
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-n', '--dry-run',) do |value|
4
+ p ['--dry-run', value]
5
+ end
6
+ parser.on('-d', '--draft',) do |value|
7
+ p ['--draft', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,10 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-n', '--dry-run',) do |value|
4
+ p ['--dry-run', value]
5
+ end
6
+ parser.on('-d', '--draft',) do |value|
7
+ p ['--draft', value]
8
+ end
9
+ parser.require_exact = true
10
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--numeric=NUMERIC', Numeric) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--object=OBJECT', Object) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,7 @@
1
+ require 'optparse'
2
+ include OptionParser::Acceptables
3
+ parser = OptionParser.new
4
+ parser.on('--octal_integer=OCTAL_INTEGER', OctalInteger) do |value|
5
+ p [value, value.class]
6
+ end
7
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x [XXX]', '--xxx', 'Optional argument via short name') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('-y', '--yyy [YYY]', 'Optional argument via long name') do |value|
7
+ p ['--yyy', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,13 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('--yyy YYY') do |value|
7
+ p ['--yyy', value]
8
+ end
9
+ parser.on('--zzz [ZZZ]') do |value|
10
+ p ['--zzz', value]
11
+ end
12
+ ret = parser.parse(ARGV)
13
+ puts "Returned: #{ret} (#{ret.class})"
@@ -0,0 +1,13 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--xxx') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('--yyy YYY') do |value|
7
+ p ['--yyy', value]
8
+ end
9
+ parser.on('--zzz [ZZZ]') do |value|
10
+ p ['--zzz', value]
11
+ end
12
+ ret = parser.parse!
13
+ puts "Returned: #{ret} (#{ret.class})"
@@ -0,0 +1,13 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on(
4
+ '--xxx',
5
+ 'Option with no argument',
6
+ ->(value) {p ['Handler proc for -xxx called with value:', value]}
7
+ )
8
+ parser.on(
9
+ '--yyy YYY',
10
+ 'Option with required argument',
11
+ ->(value) {p ['Handler proc for -yyy called with value:', value]}
12
+ )
13
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--regexp=REGEXP', Regexp) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x XXX', '--xxx', 'Required argument via short name') do |value|
4
+ p ['--xxx', value]
5
+ end
6
+ parser.on('-y', '--y YYY', 'Required argument via long name') do |value|
7
+ p ['--yyy', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse/shellwords'
2
+ parser = OptionParser.new
3
+ parser.on('--shellwords=SHELLWORDS', Shellwords) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x', 'Short name') do |value|
4
+ p ['x', value]
5
+ end
6
+ parser.on('-1', '-%', 'Two short names') do |value|
7
+ p ['-1 or -%', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x [XXX]', 'Short name with optional argument') do |value|
4
+ p ['-x', value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-[!-~]', 'Short names in (very large) range') do |name, value|
4
+ p ['!-~', name, value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-xXXX', 'Short name with required argument') do |value|
4
+ p ['-x', value]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,9 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('-x', 'One short name') do |value|
4
+ p ['-x', value]
5
+ end
6
+ parser.on('-1', '-%', 'Two short names (aliases)') do |value|
7
+ p ['-1 or -%', value]
8
+ end
9
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--string=STRING', String) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--my_option XXX') do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse/time'
2
+ parser = OptionParser.new
3
+ parser.on('--time=TIME', Time) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse'
2
+ parser = OptionParser.new
3
+ parser.on('--true_class=TRUE_CLASS', TrueClass) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!
@@ -0,0 +1,6 @@
1
+ require 'optparse/uri'
2
+ parser = OptionParser.new
3
+ parser.on('--uri=URI', URI) do |value|
4
+ p [value, value.class]
5
+ end
6
+ parser.parse!