slop 4.9.2 → 4.9.3

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: db594ae38cd4d8b8d078d3b3854e5dce764f4763107caacc02b0b270c33098d8
4
- data.tar.gz: 6e1348ca3f3d642bff87411d33c78b2f3d1b654c11c079a228f327f82648cd5f
3
+ metadata.gz: 9e59ff0d4bd9fa111d71e057b9e3ae9aa1aebef93937fcf7f1e1d57fb789c010
4
+ data.tar.gz: 1628f1e9cfa67ca737b494b65d135d4b28ee7f16fb9b9bfeb746d54a2d83b1b4
5
5
  SHA512:
6
- metadata.gz: b578d6d172adf2b9c88d482fe27798d97a821b83ef7ff4f8b6e8ed37d63cd7f7963b9634b9f734e80d744c0fc077f47bc2a08e00feed02af90452c6415383494
7
- data.tar.gz: 8fc6007694ba5df48585ac6561c1ec68cf50141d92cb6f080d50b6de700a0244aefd3d3d647f7ccee197c57cfcd3ad4721b2c88039ab6f9667cb47d4dc705620
6
+ metadata.gz: 1f1aea5c8faeb6d7d6a995f3853b97f9c8c80ed57fcaf692c3113fb5b7b4886323677e4adf5e6595975748beaca585d700949f3739dc82f81913563bc7b9a318
7
+ data.tar.gz: c75a58a1341a177152ae5d8827d3f980d6a395854123c2ab5612837835c723123c38d84239e299a50012f5b3ce017566244efa41bcfb97bfbc53a077867e9bea
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ v4.9.3 (2022-09-30)
5
+ -------------------
6
+
7
+ Bug fixes:
8
+ * Fix explicitly false boolean options and allow for additional false arguments [#276](https://github.com/leejarvis/slop/pull/276) (Eugene Otto)
9
+
4
10
  v4.9.2 (2022-03-26)
5
11
  -------------------
6
12
 
data/README.md CHANGED
@@ -22,17 +22,19 @@ opts = Slop.parse do |o|
22
22
  o.bool '-v', '--verbose', 'enable verbose mode'
23
23
  o.bool '-q', '--quiet', 'suppress output (quiet mode)'
24
24
  o.bool '-c', '--check-ssl-certificate', 'check SSL certificate for host'
25
+ o.bool '-k', '--use-keychain', 'store passphrase in OS keychain'
25
26
  o.on '--version', 'print the version' do
26
27
  puts Slop::VERSION
27
28
  exit
28
29
  end
29
30
  end
30
31
 
31
- ARGV #=> -v --login alice --host 192.168.0.1 -m post --check-ssl-certificate
32
+ ARGV #=> -v --login alice --host 192.168.0.1 -m post --check-ssl-certificate --use-keychain false
32
33
 
33
34
  opts[:host] #=> 192.168.0.1
34
35
  opts[:login] #=> alice
35
36
  opts[:method] #=> :post
37
+ opts[:use_keychain] #=> false
36
38
  opts.verbose? #=> true
37
39
  opts.quiet? #=> false
38
40
  opts.check_ssl_certificate? #=> true
@@ -53,7 +55,7 @@ Built in Option types are as follows:
53
55
 
54
56
  ```ruby
55
57
  o.string #=> Slop::StringOption, expects an argument
56
- o.bool #=> Slop::BoolOption, no argument, aliased to BooleanOption
58
+ o.bool #=> Slop::BoolOption, argument optional, aliased to BooleanOption
57
59
  o.integer #=> Slop::IntegerOption, expects an argument, aliased to IntOption
58
60
  o.float #=> Slop::FloatOption, expects an argument
59
61
  o.array #=> Slop::ArrayOption, expects an argument
data/lib/slop/types.rb CHANGED
@@ -21,6 +21,8 @@ module Slop
21
21
  class BoolOption < Option
22
22
  attr_accessor :explicit_value
23
23
 
24
+ FALSE_VALUES = [false, 'false', 'no', 'off', '0'].freeze
25
+
24
26
  def call(value)
25
27
  self.explicit_value = value
26
28
  !force_false?
@@ -35,7 +37,7 @@ module Slop
35
37
  end
36
38
 
37
39
  def force_false?
38
- explicit_value == false
40
+ FALSE_VALUES.include?(explicit_value)
39
41
  end
40
42
 
41
43
  def default_value
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.9.2'
9
+ VERSION = '4.9.3'
10
10
 
11
11
  # Parse an array of options (defaults to ARGV). Accepts an
12
12
  # optional hash of configuration options and block.
data/test/types_test.rb CHANGED
@@ -34,9 +34,11 @@ describe Slop::BoolOption do
34
34
  @verbose = @options.bool "--verbose"
35
35
  @quiet = @options.bool "--quiet"
36
36
  @inversed = @options.bool "--inversed", default: true
37
+ @explicit = @options.bool "--explicit"
37
38
  @bloc = @options.bool("--bloc"){|val| (@bloc_val ||= []) << val}
38
39
  @result = @options.parse %w(--verbose --no-inversed
39
- --bloc --no-bloc)
40
+ --bloc --no-bloc
41
+ --explicit=false)
40
42
  end
41
43
 
42
44
  it "returns true if used" do
@@ -54,6 +56,10 @@ describe Slop::BoolOption do
54
56
  it "will invert the value passed to &block via --no- prefix" do
55
57
  assert_equal [true, false], @bloc_val
56
58
  end
59
+
60
+ it "returns false when explicitly false" do
61
+ assert_equal false, @result[:explicit]
62
+ end
57
63
  end
58
64
 
59
65
  describe Slop::IntegerOption do
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.9.2
4
+ version: 4.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Jarvis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-26 00:00:00.000000000 Z
11
+ date: 2022-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 3.2.32
89
+ rubygems_version: 3.3.7
90
90
  signing_key:
91
91
  specification_version: 4
92
92
  summary: Simple Lightweight Option Parsing