slop 4.8.2 → 4.9.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/CHANGELOG.md +9 -0
- data/README.md +5 -2
- data/lib/slop.rb +1 -1
- data/lib/slop/options.rb +3 -3
- data/lib/slop/types.rb +7 -0
- data/test/types_test.rb +28 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a823b880e0feb218800faed1d191258594fb26ab2078fdfd5282df024677fd06
|
4
|
+
data.tar.gz: fe212b6f93ff3548873896606de836842081319c3acbfd99438a15b38539c2a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 467b52c6de36c7a164739b301ef016efcef5abd62891682e8353f67f63b125bc8238abd853112fb544cdc2391d93dc492446c93a01220a5ef8c908ff2cb95ee1
|
7
|
+
data.tar.gz: 6d027c76c43e84f8dab52bc04236568045c1dff962a58b0df029693b35cf535f03b2d5e4445993964bfcabe3d9093ff6465ba3ebfb399e661cc187388178b059
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
+
v4.9.0 (2021-05-11)
|
5
|
+
-------------------
|
6
|
+
|
7
|
+
Features:
|
8
|
+
* Add SymbolOption [#263](https://github.com/leejarvis/slop/pull/263)
|
9
|
+
|
10
|
+
Bug fixes:
|
11
|
+
* Use `+=` over `<<` to handle frozen string literals. [255](https://github.com/leejarvis/slop/pull/255)
|
12
|
+
|
4
13
|
v4.8.2 (2020-07-10)
|
5
14
|
-------------------
|
6
15
|
|
data/README.md
CHANGED
@@ -18,6 +18,7 @@ opts = Slop.parse do |o|
|
|
18
18
|
o.string '-h', '--host', 'a hostname'
|
19
19
|
o.integer '--port', 'custom port', default: 80
|
20
20
|
o.string '-l', '--login', required: true
|
21
|
+
o.symbol '-m', '--method', default: :get
|
21
22
|
o.bool '-v', '--verbose', 'enable verbose mode'
|
22
23
|
o.bool '-q', '--quiet', 'suppress output (quiet mode)'
|
23
24
|
o.bool '-c', '--check-ssl-certificate', 'check SSL certificate for host'
|
@@ -27,15 +28,16 @@ opts = Slop.parse do |o|
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
30
|
-
ARGV #=> -v --login alice --host 192.168.0.1 --check-ssl-certificate
|
31
|
+
ARGV #=> -v --login alice --host 192.168.0.1 -m post --check-ssl-certificate
|
31
32
|
|
32
33
|
opts[:host] #=> 192.168.0.1
|
33
34
|
opts[:login] #=> alice
|
35
|
+
opts[:method] #=> :post
|
34
36
|
opts.verbose? #=> true
|
35
37
|
opts.quiet? #=> false
|
36
38
|
opts.check_ssl_certificate? #=> true
|
37
39
|
|
38
|
-
opts.to_hash #=> { host: "192.168.0.1", login: "alice",
|
40
|
+
opts.to_hash #=> { host: "192.168.0.1", port: 80, login: "alice", method: :post, verbose: true, quiet: false, check_ssl_certificate: true }
|
39
41
|
```
|
40
42
|
|
41
43
|
Note that the block we've added to the `--version` flag will be executed
|
@@ -56,6 +58,7 @@ o.integer #=> Slop::IntegerOption, expects an argument, aliased to IntOption
|
|
56
58
|
o.float #=> Slop::FloatOption, expects an argument
|
57
59
|
o.array #=> Slop::ArrayOption, expects an argument
|
58
60
|
o.regexp #=> Slop::RegexpOption, expects an argument
|
61
|
+
o.symbol #=> Slop::SymbolOption, expects an argument
|
59
62
|
o.null #=> Slop::NullOption, no argument and ignored from `to_hash`
|
60
63
|
o.on #=> alias for o.null
|
61
64
|
```
|
data/lib/slop.rb
CHANGED
data/lib/slop/options.rb
CHANGED
@@ -105,14 +105,14 @@ module Slop
|
|
105
105
|
options.select.each_with_index.sort_by{ |o,i| [o.tail, i] }.each do |opt, i|
|
106
106
|
# use the index to fetch an associated separator
|
107
107
|
if sep = separators[i]
|
108
|
-
str
|
108
|
+
str += "#{sep}\n"
|
109
109
|
end
|
110
110
|
|
111
|
-
str
|
111
|
+
str += "#{prefix}#{opt.to_s(offset: len)}\n" if opt.help?
|
112
112
|
end
|
113
113
|
|
114
114
|
if sep = separators[options.size]
|
115
|
-
str
|
115
|
+
str += "#{sep}\n"
|
116
116
|
end
|
117
117
|
|
118
118
|
str
|
data/lib/slop/types.rb
CHANGED
@@ -6,6 +6,13 @@ module Slop
|
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
+
# Cast the option argument to a symbol.
|
10
|
+
class SymbolOption < Option
|
11
|
+
def call(value)
|
12
|
+
value.to_sym
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
9
16
|
# Cast the option argument to true or false.
|
10
17
|
# Override default_value to default to false instead of nil.
|
11
18
|
# This option type does not expect an argument. However, the API
|
data/test/types_test.rb
CHANGED
@@ -1,5 +1,33 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
+
describe Slop::StringOption do
|
4
|
+
before do
|
5
|
+
@options = Slop::Options.new
|
6
|
+
@age = @options.string "--name"
|
7
|
+
@minus = @options.string "--zipcode"
|
8
|
+
@result = @options.parse %w(--name Foo --zipcode 12345)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns the value as a string" do
|
12
|
+
assert_equal "Foo", @result[:name]
|
13
|
+
assert_equal "12345", @result[:zipcode]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe Slop::SymbolOption do
|
18
|
+
before do
|
19
|
+
@options = Slop::Options.new
|
20
|
+
@age = @options.symbol "--name"
|
21
|
+
@minus = @options.symbol "--zipcode"
|
22
|
+
@result = @options.parse %w(--name Foo --zipcode 12345)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "returns the value as a symbol" do
|
26
|
+
assert_equal :Foo, @result[:name]
|
27
|
+
assert_equal :'12345', @result[:zipcode]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
3
31
|
describe Slop::BoolOption do
|
4
32
|
before do
|
5
33
|
@options = Slop::Options.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Jarvis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|