trollop 1.12 → 1.13
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.
- data/History.txt +3 -0
- data/README.txt +3 -1
- data/lib/trollop.rb +10 -11
- data/test/test_trollop.rb +13 -1
- metadata +3 -3
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -6,7 +6,9 @@ Main page: http://trollop.rubyforge.org
|
|
6
6
|
|
7
7
|
Release announcements and comments: http://all-thing.net/search/label/trollop
|
8
8
|
|
9
|
-
Documentation quickstart: See Trollop::options
|
9
|
+
Documentation quickstart: See Trollop::options (for some reason rdoc isn't
|
10
|
+
linking that; it's in the top right of the screen if you're browsing online)
|
11
|
+
and then Trollop::Parser#opt. Also see the examples at http://trollop.rubyforge.org/.
|
10
12
|
|
11
13
|
== DESCRIPTION
|
12
14
|
|
data/lib/trollop.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
module Trollop
|
7
7
|
|
8
|
-
VERSION = "1.
|
8
|
+
VERSION = "1.13"
|
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.
|
@@ -287,15 +287,14 @@ class Parser
|
|
287
287
|
## resolve symbols
|
288
288
|
given_args = {}
|
289
289
|
@leftovers = each_arg cmdline do |arg, params|
|
290
|
-
sym =
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
end
|
290
|
+
sym = case arg
|
291
|
+
when /^-([^-])$/
|
292
|
+
@short[$1]
|
293
|
+
when /^--([^-]\S*)$/
|
294
|
+
@long[$1]
|
295
|
+
else
|
296
|
+
raise CommandlineError, "invalid argument syntax: '#{arg}'"
|
297
|
+
end
|
299
298
|
raise CommandlineError, "unknown argument '#{arg}'" unless sym
|
300
299
|
|
301
300
|
if given_args.include?(sym) && !@specs[sym][:multi]
|
@@ -491,7 +490,7 @@ private
|
|
491
490
|
when /^--$/ # arg terminator
|
492
491
|
remains += args[(i + 1) .. -1]
|
493
492
|
return remains
|
494
|
-
when /^--(\S+?)=(
|
493
|
+
when /^--(\S+?)=(.*)$/ # long argument with equals
|
495
494
|
yield "--#{$1}", [$2]
|
496
495
|
i += 1
|
497
496
|
when /^--(\S+)$/ # long argument
|
data/test/test_trollop.rb
CHANGED
@@ -548,7 +548,9 @@ EOM
|
|
548
548
|
assert_equal "goat", opts[:arg]
|
549
549
|
assert_nothing_raised { opts = @p.parse %w(--arg=goat) }
|
550
550
|
assert_equal "goat", opts[:arg]
|
551
|
-
|
551
|
+
## actually, this next one is valid. empty string for --arg, and goat as a
|
552
|
+
## leftover.
|
553
|
+
## assert_raises(CommandlineError) { opts = @p.parse %w(--arg= goat) }
|
552
554
|
end
|
553
555
|
|
554
556
|
def test_auto_generated_long_names_convert_underscores_to_hyphens
|
@@ -990,6 +992,16 @@ EOM
|
|
990
992
|
assert !opts[:aab]
|
991
993
|
assert opts[:ccd]
|
992
994
|
end
|
995
|
+
|
996
|
+
def test_accepts_arguments_with_spaces
|
997
|
+
@p.opt :arg1, "arg", :type => String
|
998
|
+
@p.opt :arg2, "arg2", :type => String
|
999
|
+
|
1000
|
+
opts = @p.parse ["--arg1", "hello there", "--arg2=hello there"]
|
1001
|
+
assert_equal "hello there", opts[:arg1]
|
1002
|
+
assert_equal "hello there", opts[:arg2]
|
1003
|
+
assert_equal 0, @p.leftovers.size
|
1004
|
+
end
|
993
1005
|
end
|
994
1006
|
|
995
1007
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trollop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "1.
|
4
|
+
version: "1.13"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Morgan
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-03-16 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: "Documentation quickstart: See Trollop::options and Trollop::Parser#opt. == DESCRIPTION == REQUIREMENTS * A burning desire to write less code. == INSTALL * gem install trollop == LICENSE Copyright (c) 2008 William Morgan. Trollop is distributed under the same terms as Ruby."
|
16
|
+
description: "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the screen if you're browsing online) and then Trollop::Parser#opt. Also see the examples at http://trollop.rubyforge.org/. == DESCRIPTION == REQUIREMENTS * A burning desire to write less code. == INSTALL * gem install trollop == LICENSE Copyright (c) 2008 William Morgan. Trollop is distributed under the same terms as Ruby."
|
17
17
|
email: wmorgan-trollop@masanjin.net
|
18
18
|
executables: []
|
19
19
|
|