trollop 1.6 → 1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,7 @@
1
+ == 1.7 / 2007-06-17
2
+ * Fix incorrect error message for multiple missing required arguments
3
+ (thanks to Neill Zero)
4
+
1
5
  == 1.6 / 2007-04-01
2
6
  * Don't attempt curses screen-width magic unless running on a terminal.
3
7
 
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ end # thanks to "Mike H"
11
11
  Hoe.new('trollop', Trollop::VERSION) do |p|
12
12
  p.rubyforge_name = 'trollop'
13
13
  p.author = "William Morgan"
14
- p.summary = "Trollop is YAFCLAP --- yet another fine commandline argument processing library for Ruby. Trollop is designed to provide the maximal amount of GNU-style argument processing in the minimum number of lines of code (for you, the programmer)."
14
+ p.summary = "YAFCLAP --- yet another fine commandline argument processing library for Ruby. Trollop is designed to provide the maximal amount of GNU-style argument processing in the minimum number of lines of code (for you, the programmer)."
15
15
 
16
16
  p.description = p.paragraphs_of('README.txt', 4..5, 9..18).join("\n\n").gsub(/== SYNOPSIS/, "Synopsis")
17
17
  p.url = "http://trollop.rubyforge.org"
@@ -5,7 +5,7 @@
5
5
 
6
6
  module Trollop
7
7
 
8
- VERSION = "1.6"
8
+ VERSION = "1.7"
9
9
 
10
10
  ## Thrown by Parser in the event of a commandline error. Not needed if
11
11
  ## you're using the Trollop::options entry.
@@ -275,7 +275,9 @@ class Parser
275
275
  end
276
276
  end
277
277
 
278
- raise CommandlineError, "option '#{required.keys.first}' must be specified" if required.any? { |sym, x| !found[sym] }
278
+ required.each do |sym, val|
279
+ raise CommandlineError, "option '#{sym}' must be specified" unless found[sym]
280
+ end
279
281
 
280
282
  ## parse parameters
281
283
  args.each do |sym, arg, param|
@@ -442,6 +442,27 @@ EOM
442
442
  assert_raises(CommandlineError) { opts = @p.parse %w(--mellow --two --jello --one) }
443
443
  end
444
444
 
445
+ ## courtesy neill zero
446
+ def test_two_required_one_missing_accuses_correctly
447
+ @p.opt "arg1", "desc1", :required => true
448
+ @p.opt "arg2", "desc2", :required => true
449
+
450
+ begin
451
+ @p.parse(%w(--arg1))
452
+ flunk "should have failed on a missing req"
453
+ rescue CommandlineError => e
454
+ assert e.message =~ /arg2/, "didn't mention arg2 in the error msg: #{e.message}"
455
+ end
456
+
457
+ begin
458
+ @p.parse(%w(--arg2))
459
+ flunk "should have failed on a missing req"
460
+ rescue CommandlineError => e
461
+ assert e.message =~ /arg1/, "didn't mention arg1 in the error msg: #{e.message}"
462
+ end
463
+
464
+ assert_nothing_raised { @p.parse(%w(--arg1 --arg2)) }
465
+ end
445
466
  end
446
467
 
447
468
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: trollop
5
5
  version: !ruby/object:Gem::Version
6
- version: "1.6"
7
- date: 2007-04-01 00:00:00 -07:00
8
- summary: Trollop is YAFCLAP --- yet another fine commandline argument processing library for Ruby. Trollop is designed to provide the maximal amount of GNU-style argument processing in the minimum number of lines of code (for you, the programmer).
6
+ version: "1.7"
7
+ date: 2007-06-17 00:00:00 -07:00
8
+ summary: YAFCLAP --- yet another fine commandline argument processing library for Ruby. Trollop is designed to provide the maximal amount of GNU-style argument processing in the minimum number of lines of code (for you, the programmer).
9
9
  require_paths:
10
10
  - lib
11
11
  email: wmorgan-trollop@masanjin.net
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - William Morgan
30
31
  files: