slop 4.9.2 → 4.9.3

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 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