slop 2.4.3 → 2.4.4
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/CHANGES.md +10 -2
- data/LICENSE +1 -1
- data/README.md +6 -3
- data/Rakefile +5 -4
- data/lib/slop.rb +3 -3
- data/slop.gemspec +1 -1
- data/test/option_test.rb +2 -2
- data/test/slop_test.rb +6 -0
- metadata +2 -2
data/CHANGES.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
2.4.4 (2012-02-07)
|
2
|
+
------------------
|
3
|
+
|
4
|
+
* Ensure options taking arguments to not parsing an argument which
|
5
|
+
is an option (#56)
|
6
|
+
* Ensure `:as => Range` returns a type of Range even if the value looks
|
7
|
+
like an Integer (#48)
|
8
|
+
|
9
|
+
2.4.3 (2012-01-16)
|
10
|
+
------------------
|
3
11
|
|
4
12
|
* Allow the `:as` option to accept an object responding to :call for
|
5
13
|
custom type conversions (#45)
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -3,6 +3,9 @@ Slop
|
|
3
3
|
|
4
4
|
Slop is a simple, lightweight option parser with an easy to remember syntax and friendly API.
|
5
5
|
|
6
|
+
Note that this is the `v2` branch. If you are looking for version 3 of Slop
|
7
|
+
please check out the [master branch](https://github.com/injekt/slop).
|
8
|
+
|
6
9
|
Installation
|
7
10
|
------------
|
8
11
|
|
@@ -38,7 +41,7 @@ opts[:age] #=> nil
|
|
38
41
|
```
|
39
42
|
|
40
43
|
For more information about creating options, see the
|
41
|
-
[Creating Options](https://github.com/injekt/slop/wiki/Creating-Options)
|
44
|
+
[Creating Options](https://github.com/injekt/slop/wiki/Creating-Options---v2)
|
42
45
|
wiki page.
|
43
46
|
|
44
47
|
You can also return your options as a Hash
|
@@ -228,7 +231,7 @@ opts[:people] #=> ['lee', 'john', 'bill']
|
|
228
231
|
```
|
229
232
|
|
230
233
|
Slop supports a few styles of list parsing. Check out
|
231
|
-
[this wiki page](https://github.com/injekt/slop/wiki/Lists) for more info.
|
234
|
+
[this wiki page](https://github.com/injekt/slop/wiki/Lists---v2) for more info.
|
232
235
|
|
233
236
|
Strict Mode
|
234
237
|
-----------
|
@@ -248,7 +251,7 @@ Check out the following wiki pages for more features:
|
|
248
251
|
|
249
252
|
* [Ranges](https://github.com/injekt/slop/wiki/Ranges)
|
250
253
|
* [Auto Create](https://github.com/injekt/slop/wiki/Auto-Create)
|
251
|
-
* [Commands](https://github.com/injekt/slop/wiki/Commands)
|
254
|
+
* [Commands](https://github.com/injekt/slop/wiki/Commands---v2)
|
252
255
|
|
253
256
|
Woah woah, why you hating on OptionParser?
|
254
257
|
------------------------------------------
|
data/Rakefile
CHANGED
@@ -3,10 +3,11 @@ begin
|
|
3
3
|
rescue LoadError
|
4
4
|
end
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
require 'rake/testtask'
|
7
|
+
|
8
|
+
Rake::TestTask.new do |t|
|
9
|
+
t.libs << 'test'
|
10
|
+
t.test_files = Dir['test/*_test.rb']
|
10
11
|
end
|
11
12
|
|
12
13
|
task :default => :test
|
data/lib/slop.rb
CHANGED
@@ -2,7 +2,7 @@ class Slop
|
|
2
2
|
include Enumerable
|
3
3
|
|
4
4
|
# @return [String] The current version string
|
5
|
-
VERSION = '2.4.
|
5
|
+
VERSION = '2.4.4'
|
6
6
|
|
7
7
|
# Slops standard Error class. All exception classes should
|
8
8
|
# inherit from this class
|
@@ -243,7 +243,7 @@ class Slop
|
|
243
243
|
when /\A(-?\d+?)(\.\.\.?|-|,)(-?\d+)\z/
|
244
244
|
Range.new($1.to_i, $3.to_i, $2 == '...')
|
245
245
|
when /\A-?\d+\z/
|
246
|
-
value.to_i
|
246
|
+
Range.new(value.to_i, value.to_i)
|
247
247
|
else
|
248
248
|
value
|
249
249
|
end
|
@@ -840,7 +840,7 @@ class Slop
|
|
840
840
|
raise MissingArgumentError, "'#{option.key}' expects an argument, none given"
|
841
841
|
end
|
842
842
|
|
843
|
-
if argument
|
843
|
+
if argument && argument !~ /^--?[a-zA-Z_-]+/
|
844
844
|
if option.match and not argument.match(option.match)
|
845
845
|
raise InvalidArgumentError, "'#{argument}' does not match #{option.match.inspect}"
|
846
846
|
end
|
data/slop.gemspec
CHANGED
data/test/option_test.rb
CHANGED
@@ -98,7 +98,6 @@ class OptionTest < TestCase
|
|
98
98
|
assert_equal nil, option_value(%w/-i/, :i, :as => :array)
|
99
99
|
assert_equal nil, option_value(%w/-i/, :i, :as => :range)
|
100
100
|
|
101
|
-
assert_equal 1, option_value(%w/-i 1/, :i, :optional => true, :as => :range)
|
102
101
|
assert_equal nil, option_value(%w/-i/, :i, :optional => true, :as => :range)
|
103
102
|
end
|
104
103
|
|
@@ -114,7 +113,8 @@ class OptionTest < TestCase
|
|
114
113
|
# return value.to_i if the value is /\A\d+\z/
|
115
114
|
# maybe this should raise if Slop#strict?
|
116
115
|
assert_equal "1abc10", option_value(%w/-r 1abc10/, :r, true, :as => Range)
|
117
|
-
assert_equal 1, option_value(%w/-r 1/, :r, true, :as => Range)
|
116
|
+
assert_equal (1..1), option_value(%w/-r 1/, :r, true, :as => Range)
|
117
|
+
assert_equal (2..2), option_value(%w/-r 2/, :r, true, :as => Range)
|
118
118
|
end
|
119
119
|
|
120
120
|
test 'printing options' do
|
data/test/slop_test.rb
CHANGED
@@ -593,4 +593,10 @@ class SlopTest < TestCase
|
|
593
593
|
Slop.parse!(items)
|
594
594
|
assert_equal %w(-1), items
|
595
595
|
end
|
596
|
+
|
597
|
+
test "options taking arguments should ignore argument that look like options (wut?)" do
|
598
|
+
opts = Slop.new { on :v; on :foo, :optional => true, :default => 5, :as => Integer }
|
599
|
+
opts.parse %w[ -c -v ]
|
600
|
+
assert_equal 5, opts[:foo]
|
601
|
+
end
|
596
602
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A simple DSL for gathering options and parsing the command line
|
15
15
|
email: lee@jarvis.co
|