slop 4.8.2 → 4.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b79c8ecabc4f59e446e17b38a61381a4711e1da44918d5bfa3c459e3330fa7c5
4
- data.tar.gz: 6a5c4c2b6a0624a0f533ea86bc7855774a23d134d581f178d2d6fa476b01da59
3
+ metadata.gz: a823b880e0feb218800faed1d191258594fb26ab2078fdfd5282df024677fd06
4
+ data.tar.gz: fe212b6f93ff3548873896606de836842081319c3acbfd99438a15b38539c2a2
5
5
  SHA512:
6
- metadata.gz: 15ac86c2fe54c3c5dffb8d186e50341febfa6ed858eedae5347a416fc9261159262d68873645c7bb11d1cc2155473f6deb3a8740da2c4fcc1a78f0f477cccfc8
7
- data.tar.gz: d1a078ebc9c8ddd2b970e9cc39dcf72fc20b3e67a50abed4bf51a7d22bafe8ae7170c03930bf8d3073f487d167f6f27fe1475b5e5735b4bf2090efa446a0eff5
6
+ metadata.gz: 467b52c6de36c7a164739b301ef016efcef5abd62891682e8353f67f63b125bc8238abd853112fb544cdc2391d93dc492446c93a01220a5ef8c908ff2cb95ee1
7
+ data.tar.gz: 6d027c76c43e84f8dab52bc04236568045c1dff962a58b0df029693b35cf535f03b2d5e4445993964bfcabe3d9093ff6465ba3ebfb399e661cc187388178b059
data/.travis.yml CHANGED
@@ -17,9 +17,10 @@ rvm:
17
17
  - 2.5.7
18
18
  - 2.6.5
19
19
  - 2.7.0
20
- - jruby-9.2.9.0
20
+ - jruby-9.2.16.0
21
21
  - jruby-head
22
22
  - ruby-head
23
+ - truffleruby-head
23
24
  jdk:
24
25
  - openjdk8
25
26
  notifications:
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", port: 80, verbose: true, quiet: false, check_ssl_certificate: true }
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
@@ -6,7 +6,7 @@ require 'slop/types'
6
6
  require 'slop/error'
7
7
 
8
8
  module Slop
9
- VERSION = '4.8.2'
9
+ VERSION = '4.9.0'
10
10
 
11
11
  # Parse an array of options (defaults to ARGV). Accepts an
12
12
  # optional hash of configuration options and block.
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 << "#{sep}\n"
108
+ str += "#{sep}\n"
109
109
  end
110
110
 
111
- str << "#{prefix}#{opt.to_s(offset: len)}\n" if opt.help?
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 << "#{sep}\n"
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.8.2
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: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2021-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake