safebool 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: e5a56c5aa20a4d11dd6ce2ebba0546355956cf02
4
- data.tar.gz: d2e2851c0a079a483bb3521f4904492b010eb1e5
3
+ metadata.gz: 3259e4df2ebfb2f5359249c7d1fc87dbb03c23d3
4
+ data.tar.gz: 8357baa33140416175df3b652581a30a381e0d9e
5
5
  SHA512:
6
- metadata.gz: c1f80ebf778f848f3db67011ef045d92ffba850f7b67e9fb4565d8851567597bad4715a30246796a43056c4bb0138de182cfccad455e7acaf24407dac7d3f716
7
- data.tar.gz: a95229a84ee2dd89555e09885320a22b2daae5cf38d279f59e63005969466419c0642ff5859127fec50467194c206b819b5684bf9616843ba0a859f5f5f1f204
6
+ metadata.gz: 12332af592e5acda2b25cfc6919c281c304fa0ed82f3804dab36736c32476e74d9cbc2c5d7f807b111f2fbc72cd210fa6858a0feb5ff2ef3b051aa7c633bfb68
7
+ data.tar.gz: ff2e864c3b041f56b78be5ef1a1342984487affd5d56b8ef440c495fd69889b4a75c7bdb701e9980c36d49c5b9481747a5eec25c54338d5666ad20c5b1438705
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  # Safe Bool Type - `Bool()`, `to_b`, `to_bool`, and More
3
3
 
4
4
 
5
- safebool gem / library - safe bool(ean) type adds `Bool()`, `to_b`, `to_bool`, `bool?`, `false?`, `true?`, `true.is_a?(Bool)==true`, `false.is_a?(Bool)==true`, and more
5
+ safebool gem / library - safe bool / boolean type adds `Bool()`, `to_b`, `parse_bool` / `to_bool`, `bool?`, `false?`, `true?`, `true.is_a?(Bool)==true`, `false.is_a?(Bool)==true`, and more
6
6
 
7
7
 
8
8
  * home :: [github.com/s6ruby/safebool](https://github.com/s6ruby/safebool)
@@ -25,10 +25,25 @@ false.class.ancestors #=> [FalseClass, Object, Kernel, BasicObject]
25
25
 
26
26
  # -or-
27
27
 
28
+ false.to_s #=> "false"
29
+ true.to_s #=> "true"
30
+ false.to_i #=> NoMethodError: undefined method `to_i' for false:FalseClass
31
+ true.to_i #=> NoMethodError: undefined method `to_i' for true:TrueClass
32
+ Integer(false) #=> TypeError: can't convert false into Integer
33
+ Integer(true) #=> TypeError: can't convert true into Integer
34
+
35
+ # -or-
36
+
37
+ "false".to_b #=> NoMethodError: undefined method `to_b' for String
38
+ 0.to_b #=> NoMethodError: undefined method `to_b' for Integer
39
+ Bool("false") #=> NoMethodError: undefined method `Bool' for Kernel
40
+ Bool(0) #=> NoMethodError: undefined method `Bool' for Kernel
41
+
28
42
  "true".to_b #=> NoMethodError: undefined method `to_b' for String
29
43
  1.to_b #=> NoMethodError: undefined method `to_b' for Integer
30
44
  Bool("true") #=> NoMethodError: undefined method `Bool' for Kernel
31
45
  Bool(1) #=> NoMethodError: undefined method `Bool' for Kernel
46
+
32
47
  ...
33
48
  ```
34
49
 
@@ -38,6 +53,13 @@ Why? Why not? Discuss.
38
53
 
39
54
  ## Usage
40
55
 
56
+ [String](#string) •
57
+ [Symbol](#symbol) •
58
+ [Integer](#integer) •
59
+ [Kernel](#kernel)
60
+
61
+
62
+
41
63
  ``` ruby
42
64
  false.is_a?(Bool) #=> true
43
65
  true.is_a?(Bool) #=> true
@@ -46,35 +68,168 @@ false.class.ancestors #=> [FalseClass, Bool, Object, Kernel, BasicObject]
46
68
 
47
69
  # -or-
48
70
 
49
- "true".to_b #=> true
50
- 1.to_b #=> true
51
- Bool("true") #=> true
52
- Bool(1) #=> true
71
+ false.to_i #=> 0
72
+ true.to_i #=> 1
73
+
74
+ # -or-
53
75
 
54
76
  "false".to_b #=> false
55
77
  0.to_b #=> false
56
78
  Bool("false") #=> false
57
79
  Bool(0) #=> false
80
+
81
+ "true".to_b #=> true
82
+ 1.to_b #=> true
83
+ Bool("true") #=> true
84
+ Bool(1) #=> true
58
85
  ```
59
86
 
87
+
60
88
  How about handling errors on invalid bool values when converting / parsing?
61
89
 
62
- 1. `to_b` always return a bool even if the conversion / parsing failed e.g. `true` (for numbers) and `false` (for strings) on error
63
- 2. `parse_bool/to_bool` always returns `nil` if the conversion / parsing failed
64
- 3. `Bool()` always raises a `TypeError` if the conversion / parsing failed
90
+ 1. `to_b` always returns a bool even if the conversion / parsing fails e.g. `true` (for numbers) and `false` (for strings) on error
91
+ 2. `parse_bool / to_bool` always returns `nil` if the conversion / parsing fails
92
+ 3. `Bool()` always raises an `ArgumentError` if the conversion / parsing fails
93
+ and a `TypeError` if the conversion is unsupported (e.g. expected required `parse_bool` method missing / undefined)
65
94
 
66
95
 
67
96
  ``` ruby
68
- "2".to_b #=> false
69
- "2".to_bool #=> nil
70
- 2.to_b #=> true
71
- 2.to_bool #=> nil
72
- Bool("2") #=> TypeError: cannot convert "2":String to Bool; method parse_bool/to_bool expected
73
- Bool(2) #=> TypeError: cannot convert 2:Fixnum to Bool; method parse_bool/to_bool expected
97
+ "2".to_b #=> false
98
+ "2".to_bool #=> nil
99
+ "2".to_bool.bool? #=> false
100
+ "2".to_bool.is_a?(Bool) #=> false
101
+ Bool("2") #=> ArgumentError: invalid value "2":String for Bool(); parse_bool failed (returns nil)
102
+
103
+ 2.to_b #=> true
104
+ 2.to_bool #=> nil
105
+ 2.to_bool.bool? #=> false
106
+ 2.to_bool.is_a?(Bool) #=> false
107
+ Bool(2) #=> ArgumentError: invalid value 2:Integer for Bool(); parse_bool failed (returns nil)
74
108
  ...
75
109
  ```
76
110
 
77
111
 
112
+ ### String
113
+
114
+ - Returns `true` if string is one of these values: **t**, **true**, **on**, **y**, **yes**, **1**.
115
+ - Returns `false` if string is one of these values: **f**, **false**, **off**, **n**, **no**, **0**.
116
+
117
+ For invalid boolean string values `to_b` returns `false` by default.
118
+ See the "Handling Errors" section for more options.
119
+
120
+ Note: The `Bool.parse` method ignores leading and trailing spaces and upper and lower cases e.g. ` FaLSe ` is the same as `false`.
121
+
122
+ ```ruby
123
+ '1'.to_b #=> true
124
+ 't'.to_b #=> true
125
+ 'T'.to_b #=> true
126
+ 'true'.to_b #=> true
127
+ 'TRUE'.to_b #=> true
128
+ 'on'.to_b #=> true
129
+ 'ON'.to_b #=> true
130
+ 'y'.to_b #=> true
131
+ 'yes'.to_b #=> true
132
+ 'YES'.to_b #=> true
133
+
134
+ ' 1 '.to_b #=> true
135
+ ' t '.to_b #=> true
136
+ ' T '.to_b #=> true
137
+ ' true '.to_b #=> true
138
+ ' TRUE '.to_b #=> true
139
+ ' on '.to_b #=> true
140
+ ' ON '.to_b #=> true
141
+ ' y '.to_b #=> true
142
+ 'Y'.to_b #=> true
143
+ ' Y '.to_b #=> true
144
+ ' yes '.to_b #=> true
145
+ ' YES '.to_b #=> true
146
+
147
+ '0'.to_b #=> false
148
+ 'f'.to_b #=> false
149
+ 'F'.to_b #=> false
150
+ 'false'.to_b #=> false
151
+ 'FALSE'.to_b #=> false
152
+ 'off'.to_b #=> false
153
+ 'OFF'.to_b #=> false
154
+ 'n'.to_b #=> false
155
+ 'N'.to_b #=> false
156
+ 'no'.to_b #=> false
157
+ 'NO'.to_b #=> false
158
+
159
+ ' 0 '.to_b #=> false
160
+ ' f '.to_b #=> false
161
+ ' F '.to_b #=> false
162
+ ' false '.to_b #=> false
163
+ ' FALSE '.to_b #=> false
164
+ ' off '.to_b #=> false
165
+ ' OFF '.to_b #=> false
166
+ ' n '.to_b #=> false
167
+ ' N '.to_b #=> false
168
+ ' no '.to_b #=> false
169
+ ' NO '.to_b #=> false
170
+
171
+ ''.to_b #=> false
172
+ ' '.to_b #=> false
173
+ 'xxx'.to_b #=> false
174
+ 'bool'.to_b #=> false
175
+
176
+ ''.to_bool #=> nil
177
+ ' '.to_bool #=> nil
178
+ 'xxx'.to_bool #=> nil
179
+ 'bool'.to_bool #=> nil
180
+ ```
181
+
182
+ ### Symbol
183
+
184
+ Same as `self.to_s.to_b` or `self.to_s.to_bool`.
185
+
186
+ ``` ruby
187
+ :'1'.to_b #=> true
188
+ :t.to_b #=> true
189
+ :true.to_b #=> true
190
+ :on.to_b #=> true
191
+ :y.to_b #=> true
192
+ :yes.to_b #=> true
193
+
194
+ :'0'.to_b #=> false
195
+ :f.to_b #=> false
196
+ :false.to_b #=> false
197
+ :off.to_b #=> false
198
+ :n.to_b #=> false
199
+ :no.to_b #=> false
200
+
201
+ :xxx.to_b #=> false
202
+ :bool.to_b #=> false
203
+
204
+ :xxx.to_bool #=> nil
205
+ :bool.to_bool #=> nil
206
+ ```
207
+
208
+
209
+
210
+
211
+ ### Integer
212
+
213
+ Returns `false` if the number is zero and `true` otherwise.
214
+
215
+
216
+ ```ruby
217
+ 0.to_b #=> false
218
+ 1.to_b #=> true
219
+ 2.to_b #=> true
220
+ -1.to_b #=> true
221
+ -2.to_b #=> true
222
+
223
+ 0.to_bool #=> false
224
+ 1.to_bool #=> true
225
+
226
+ 2.to_bool #=> nil
227
+ -1.to_bool #=> nil
228
+ -2.to_bool #=> nil
229
+ ```
230
+
231
+
232
+ ### Kernel
78
233
 
79
234
  More methods added to `Kernel` include `bool?`, `false?`, `true?`.
80
235
  Example:
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ Hoe.spec 'safebool' do
5
5
 
6
6
  self.version = SaferBool::VERSION
7
7
 
8
- self.summary = "safebool - safe bool(ean) type adds Bool(), to_b, to_bool, bool?, false?, true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more"
8
+ self.summary = "safebool - safe bool / boolean type adds Bool(), to_b, parse_bool / to_bool, bool?, false?, true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more"
9
9
  self.description = summary
10
10
 
11
11
  self.urls = ['https://github.com/s6ruby/safebool']
data/lib/safebool.rb CHANGED
@@ -30,27 +30,22 @@ module Bool
30
30
 
31
31
 
32
32
  def self.convert( o ) ## used by "global" Bool( o ) kernel conversion method
33
- value = if o.respond_to?( :to_bool )
34
- o.to_bool # returns true/false/nil
35
- elsif o.respond_to?( :parse_bool ) ## check parse_bool alias
36
- o.parse_bool # returns true/false/nil
37
- else
38
- nil
39
- end
40
-
41
- if value.nil?
42
- raise TypeError.new( "cannot convert >#{o.inspect}< of type >#{o.class.name}< to Bool; method parse_bool/to_bool expected")
43
- else
33
+ if o.respond_to?( :parse_bool )
34
+ value = o.parse_bool() # note: returns true/false OR nil
35
+ if value.nil?
36
+ raise ArgumentError.new( "invalid value >#{o.inspect}< of type >#{o.class.name}< for Bool(); method parse_bool failed (returns nil)")
37
+ end
44
38
  value
39
+ else
40
+ raise TypeError.new( "can't convert >#{o.inspect}< of type >#{o.class.name}< to Bool; method parse_bool expected / missing")
45
41
  end
46
42
  end
47
43
 
48
- def self.zero() false; end ## note: false.frozen? == true by default
44
+ def self.zero() false; end
49
45
 
50
46
 
51
47
  def to_b() self; end
52
48
  def parse_bool() self; end
53
- alias_method :to_bool, :parse_bool
54
49
  end # module Bool
55
50
 
56
51
 
@@ -59,12 +54,21 @@ class FalseClass
59
54
  include Bool ## "hack" - enables false.is_a?(Bool)
60
55
 
61
56
  def zero?() true; end
57
+ def to_i() 0; end
58
+
59
+ ## note: include Bool does NOT include module function (e.g. self.zero, etc.)
60
+ ## todo/check/discuss - also include self.parse - why? why not?
61
+ def self.zero() false; end ## lets you write: false.class.zero
62
62
  end
63
63
 
64
64
  class TrueClass
65
65
  include Bool ## "hack" - enables true.is_a?(Bool)
66
66
 
67
67
  def zero?() false; end
68
+ def to_i() 1; end
69
+
70
+ ## note: include Bool does NOT include module function (e.g. self.zero, etc.)
71
+ def self.zero() false; end ## lets you write: true.class.zero
68
72
  end
69
73
 
70
74
 
@@ -100,10 +104,29 @@ module Kernel
100
104
 
101
105
 
102
106
  #####
103
- # default "explicit" conversion to bool for all objects
104
- def to_b() self ? true : false; end
107
+ # default "explicit" conversion to bool for all objects
108
+ def to_b
109
+ if respond_to?( :parse_bool )
110
+ value = parse_bool() # note: returns true/false/nil (nil for error/cannot parse)
111
+ value = true if value.nil? # default nil (cannot parse to bool) to true
112
+ value
113
+ else
114
+ self ? true : false ## use "standard" ruby semantics, that is, everything is true except false & nil
115
+ end
116
+ end
105
117
 
106
118
 
119
+ # to_bool - "porcelain" method "alias" for parse_bool; use parse_bool for "internal" use and to_bool for "external" use
120
+ # note: by "default" the method parse_bool is undefined (!);
121
+ # define parse_bool in concrete / derived class to add bool conversion support
122
+ def to_bool()
123
+ if respond_to?( :parse_bool )
124
+ parse_bool()
125
+ else
126
+ nil ## note: returns nil if can't convert to true or false
127
+ end
128
+ end
129
+
107
130
  ### "global" conversion function / method
108
131
  def Bool( o ) Bool.convert( o ); end
109
132
  end
@@ -111,44 +134,41 @@ end
111
134
 
112
135
 
113
136
  class NilClass
114
- def to_b() false; end
137
+ def to_b() false; end
115
138
  def parse_bool() false; end
116
- alias_method :to_bool, :parse_bool
117
139
  end
118
140
 
119
141
  class String
120
142
  def to_b
121
143
  value = parse_bool()
122
- value.nil? ? false : value ## note return false for all undefined / unknown string values
144
+ value = false if value.nil? ## note: return false (!) for all undefined / unknown string values that cannot convert to bool
145
+ value
123
146
  end
124
147
  def parse_bool() Bool.parse( self ); end
125
- alias_method :to_bool, :parse_bool
126
148
  end
127
149
 
128
150
  class Symbol
129
- def to_b() to_s.to_b; end
151
+ def to_b() to_s.to_b; end
130
152
  def parse_bool() to_s.parse_bool(); end
131
- alias_method :to_bool, :parse_bool
132
153
  end
133
154
 
134
- class Numeric
135
- def to_b()
155
+ class Integer
156
+ def to_b
136
157
  value = parse_bool()
137
- value.nil? ? true : value ## note return **true** for all undefined / unknown number/numeric values
158
+ value = true if value.nil? ## note return true for all undefined / unknown number/numeric values that cannot convert to bool
159
+ value
138
160
  end
139
- def parse_bool()
161
+ def parse_bool
140
162
  if self == 0
141
163
  false
142
164
  elsif self == 1
143
165
  true
144
166
  else
145
- nil ## note: returns nil if cannot convert to true or false
167
+ nil ## note: returns nil if can't convert to true or false
146
168
  end
147
169
  end
148
- alias_method :to_bool, :parse_bool
149
170
  end
150
171
 
151
172
 
152
173
 
153
-
154
174
  puts SaferBool.banner ## say hello
@@ -9,7 +9,7 @@
9
9
  module SaferBool
10
10
 
11
11
  MAJOR = 1
12
- MINOR = 0
12
+ MINOR = 1
13
13
  PATCH = 0
14
14
  VERSION = [MAJOR,MINOR,PATCH].join('.')
15
15
 
data/test/test_bool.rb CHANGED
@@ -11,33 +11,63 @@ require 'helper'
11
11
  class TestBool < MiniTest::Test
12
12
 
13
13
  def test_bool
14
- assert_equal true, false.is_a?(Bool)
15
- assert_equal true, false.false?
16
- assert_equal false, false.true?
17
- assert_equal true, false.bool?
18
- assert_equal false, false.to_b
19
-
20
- assert_equal true, true.is_a?(Bool)
21
- assert_equal true, true.true?
22
- assert_equal false, true.false?
23
- assert_equal true, true.bool?
24
- assert_equal true, true.to_b
14
+ assert_equal true, false.is_a?(Bool)
15
+ assert_equal true, false.false?
16
+ assert_equal false, false.true?
17
+ assert_equal true, false.bool?
18
+ assert_equal false, false.to_b
19
+ assert_equal 0, false.to_i
20
+ assert_equal "false", false.to_s
21
+
22
+ assert_equal true, true.is_a?(Bool)
23
+ assert_equal true, true.true?
24
+ assert_equal false, true.false?
25
+ assert_equal true, true.bool?
26
+ assert_equal true, true.to_b
27
+ assert_equal 1, true.to_i
28
+ assert_equal "true", true.to_s
29
+
30
+ assert_equal false, Bool.zero
31
+ assert_equal false, false.class.zero
32
+ assert_equal false, true.class.zero
33
+
34
+ assert_equal true, false.zero?
35
+ assert_equal false, true.zero?
36
+
37
+ assert_equal true, false.frozen? ## (always) true by default
38
+ assert_equal true, true.frozen? ## (always) true by default
39
+ end
40
+
41
+ def test_parse
42
+ assert_equal false, Bool.parse( "false" )
43
+ assert_equal false, Bool.parse( "f" )
44
+ assert_equal false, Bool.parse( "0" )
45
+
46
+ assert_equal true, Bool.parse( "true" )
47
+ assert_equal true, Bool.parse( "t" )
48
+ assert_equal true, Bool.parse( "1" )
49
+
50
+ assert_equal true, Bool.parse( "" ) == nil
51
+ assert_equal true, Bool.parse( "2" ) == nil
52
+ assert_equal true, Bool.parse( "xxx" ) == nil
25
53
  end
26
54
 
27
55
  def test_nil
28
56
  assert_equal false, nil.to_b
57
+ assert_equal false, nil.to_bool
29
58
  assert_equal false, Bool(nil)
30
59
 
60
+ assert_equal 0, nil.to_i
61
+ assert_equal "", nil.to_s
62
+
63
+ assert_equal true, nil.to_bool.is_a?(Bool)
64
+
31
65
  assert_equal false, nil.false?
32
66
  assert_equal false, nil.true?
33
67
  assert_equal false, nil.bool?
34
68
  end
35
69
 
36
70
  def test_string
37
- assert_equal false, "true".false?
38
- assert_equal false, "true".true?
39
- assert_equal false, "true".bool?
40
-
41
71
  assert_equal true, "true".to_b
42
72
  assert_equal true, "yes".to_b
43
73
  assert_equal true, "on".to_b
@@ -57,13 +87,28 @@ class TestBool < MiniTest::Test
57
87
  assert_equal true, Bool("t")
58
88
  assert_equal true, Bool("y")
59
89
  assert_equal true, Bool("1")
90
+
91
+ assert_equal true, "".to_bool == nil
92
+ assert_equal true, " ".to_bool == nil
93
+ assert_equal true, "2".to_bool == nil
94
+ assert_equal true, "xxx".to_bool == nil
95
+
96
+ assert_equal false, "".to_bool.bool?
97
+ assert_equal false, " ".to_bool.bool?
98
+ assert_equal false, "2".to_bool.bool?
99
+ assert_equal false, "xxx".to_bool.bool?
100
+
101
+ assert_equal false, "".to_bool.is_a?(Bool)
102
+ assert_equal false, " ".to_bool.is_a?(Bool)
103
+ assert_equal false, "2".to_bool.is_a?(Bool)
104
+ assert_equal false, "xxx".to_bool.is_a?(Bool)
105
+
106
+ assert_equal false, "true".false?
107
+ assert_equal false, "true".true?
108
+ assert_equal false, "true".bool?
60
109
  end
61
110
 
62
111
  def test_symbol
63
- assert_equal false, :true.false?
64
- assert_equal false, :true.true?
65
- assert_equal false, :true.bool?
66
-
67
112
  assert_equal true, :true.to_b
68
113
  assert_equal true, :yes.to_b
69
114
  assert_equal true, :on.to_b
@@ -77,20 +122,45 @@ class TestBool < MiniTest::Test
77
122
  assert_equal true, Bool(:t)
78
123
  assert_equal true, Bool(:y)
79
124
  assert_equal true, Bool(:"1")
125
+
126
+ assert_equal true, :'2'.to_bool == nil
127
+ assert_equal true, :xxx.to_bool == nil
128
+
129
+ assert_equal false, :'2'.to_bool.bool?
130
+ assert_equal false, :'xxx'.to_bool.bool?
131
+
132
+ assert_equal false, :'2'.to_bool.is_a?(Bool)
133
+ assert_equal false, :'xxx'.to_bool.is_a?(Bool)
134
+
135
+ assert_equal false, :true.false?
136
+ assert_equal false, :true.true?
137
+ assert_equal false, :true.bool?
80
138
  end
81
139
 
82
140
 
83
141
  def test_integer
84
- assert_equal false, 1.false?
85
- assert_equal false, 1.true?
86
- assert_equal false, 1.bool?
87
-
88
142
  assert_equal false, 0.to_b
89
143
  assert_equal true, 1.to_b
90
144
  assert_equal true, 2.to_b
91
145
 
92
146
  assert_equal false, Bool(0)
93
147
  assert_equal true, Bool(1)
94
- assert_equal true, Bool(2)
148
+
149
+ assert_equal true, 2.to_bool == nil
150
+ assert_equal true, -1.to_bool == nil
151
+
152
+ assert_equal false, 2.to_bool.bool?
153
+ assert_equal false, -1.to_bool.bool?
154
+
155
+ assert_equal false, 2.to_bool.is_a?(Bool)
156
+ assert_equal false, -1.to_bool.is_a?(Bool)
157
+
158
+ assert_equal false, 1.false?
159
+ assert_equal false, 1.true?
160
+ assert_equal false, 1.bool?
161
+
162
+ assert_equal false, 0.false?
163
+ assert_equal false, 0.true?
164
+ assert_equal false, 0.bool?
95
165
  end
96
166
  end # class TestBool
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safebool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-30 00:00:00.000000000 Z
11
+ date: 2019-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -38,8 +38,8 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.16'
41
- description: safebool - safe bool(ean) type adds Bool(), to_b, to_bool, bool?, false?,
42
- true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more
41
+ description: safebool - safe bool / boolean type adds Bool(), to_b, parse_bool / to_bool,
42
+ bool?, false?, true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more
43
43
  email: wwwmake@googlegroups.com
44
44
  executables: []
45
45
  extensions: []
@@ -83,6 +83,6 @@ rubyforge_project:
83
83
  rubygems_version: 2.5.2
84
84
  signing_key:
85
85
  specification_version: 4
86
- summary: safebool - safe bool(ean) type adds Bool(), to_b, to_bool, bool?, false?,
87
- true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more
86
+ summary: safebool - safe bool / boolean type adds Bool(), to_b, parse_bool / to_bool,
87
+ bool?, false?, true?, true.is_a?(Bool)==true, false.is_a?(Bool)==true, and more
88
88
  test_files: []