wannabe_bool 0.3.0 → 0.4.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/CHANGELOG.md +1 -0
- data/README.md +46 -9
- data/lib/wannabe_bool.rb +5 -2
- data/lib/wannabe_bool/attributes.rb +11 -13
- data/lib/wannabe_bool/boolean.rb +3 -5
- data/lib/wannabe_bool/nil.rb +3 -5
- data/lib/wannabe_bool/numeric.rb +9 -0
- data/lib/wannabe_bool/string.rb +11 -0
- data/lib/wannabe_bool/symbol.rb +9 -0
- data/lib/wannabe_bool/version.rb +1 -1
- data/spec/wannabe_bool/boolean_spec.rb +2 -2
- data/spec/wannabe_bool/nil_spec.rb +1 -1
- data/spec/wannabe_bool/numeric_spec.rb +68 -0
- data/spec/wannabe_bool/string_spec.rb +40 -0
- data/spec/wannabe_bool/symbol_spec.rb +37 -0
- data/wannabe_bool.gemspec +1 -1
- metadata +14 -11
- data/lib/wannabe_bool/integer.rb +0 -11
- data/lib/wannabe_bool/object.rb +0 -23
- data/spec/wannabe_bool/integer_spec.rb +0 -28
- data/spec/wannabe_bool/object_spec.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f34ba0e39b595bd2371d18a7e5f22bd2610bd0a
|
4
|
+
data.tar.gz: 469ed8e3c641acd26b64dacfc608b25b7b9b3e26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5172488e8cf1da43e71078745f7921b8ac31f62b99289bec91677b69e46582f66f5d22808726e1c6dc99dadcd9949f13618475402658f051622812bfc8db079
|
7
|
+
data.tar.gz: 6b437e15008f5459fba65fa469752bd2e2a646211db0a7c85ef1c7fe3f6cd43ee500b6a5ea556c8b617b1ff1f8d49defa1b6988c00bfc47801f042ba14555218
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
| Version | Changes |
|
2
2
|
| ------- | ------- |
|
3
|
+
| 0.4.0 | `to_b` in `Numeric` class, not only in `Integer` class. |
|
3
4
|
| 0.3.0 | Fix integer to boolean conversion. [Issue #2](https://github.com/prodis/wannabe_bool/issues/2) |
|
4
5
|
| 0.2.0 | Minimal required Ruby version is 2.0.0 from now. |
|
5
6
|
| 0.1.1 | Remove post install message. |
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Wannabe Bool
|
2
2
|
|
3
|
-
If **string**, **
|
3
|
+
If **string**, **numeric**, **symbol** and **nil** values wanna be a **boolean** value, they can with the new `to_b` method.
|
4
4
|
Moreover, you can use `WannabeBool::Attributes` module to create predicate methods in your classes.
|
5
5
|
|
6
6
|
[](http://badge.fury.io/rb/wannabe_bool)
|
@@ -8,6 +8,7 @@ Moreover, you can use `WannabeBool::Attributes` module to create predicate metho
|
|
8
8
|
[](https://coveralls.io/github/prodis/wannabe_bool?branch=master)
|
9
9
|
[](https://codeclimate.com/github/prodis/wannabe_bool)
|
10
10
|
[](https://gemnasium.com/prodis/wannabe_bool)
|
11
|
+
[](LICENSE)
|
11
12
|
|
12
13
|
|
13
14
|
## Installing
|
@@ -24,18 +25,19 @@ $ gem install wannabe_bool
|
|
24
25
|
|
25
26
|
## Using
|
26
27
|
|
27
|
-
`to_b` method is available on `String`, `Symbol`, `
|
28
|
+
`to_b` method is available on `String`, `Symbol`, `Numeric`, `TrueClass`, `FalseClass` and `NilClass`.
|
28
29
|
|
29
30
|
```ruby
|
30
31
|
require 'wannabe_bool'
|
31
32
|
```
|
32
33
|
|
33
34
|
#### String
|
35
|
+
Returns `true` if string is one of **t**, **true**, **on**, **y**, **yes** or **1** values. Returns `false` otherwise.
|
36
|
+
|
37
|
+
Ignores trailing spaces and letter cases.
|
38
|
+
|
34
39
|
```ruby
|
35
40
|
'1'.to_b # => true
|
36
|
-
'2'.to_b # => true
|
37
|
-
'-1'.to_b # => true
|
38
|
-
'-2'.to_b # => true
|
39
41
|
't'.to_b # => true
|
40
42
|
'T'.to_b # => true
|
41
43
|
'true'.to_b # => true
|
@@ -47,9 +49,6 @@ require 'wannabe_bool'
|
|
47
49
|
'YES'.to_b # => true
|
48
50
|
|
49
51
|
' 1 '.to_b # => true
|
50
|
-
' 2 '.to_b # => true
|
51
|
-
' -1 '.to_b # => true
|
52
|
-
' -2 '.to_b # => true
|
53
52
|
' t '.to_b # => true
|
54
53
|
' T '.to_b # => true
|
55
54
|
' true '.to_b # => true
|
@@ -64,6 +63,9 @@ require 'wannabe_bool'
|
|
64
63
|
|
65
64
|
''.to_b # => false
|
66
65
|
'0'.to_b # => false
|
66
|
+
'2'.to_b # => false
|
67
|
+
'-1'.to_b # => false
|
68
|
+
'-2'.to_b # => false
|
67
69
|
'f'.to_b # => false
|
68
70
|
'F'.to_b # => false
|
69
71
|
'false'.to_b # => false
|
@@ -80,6 +82,8 @@ require 'wannabe_bool'
|
|
80
82
|
```
|
81
83
|
|
82
84
|
#### Symbol
|
85
|
+
Same as `symbol.to_s.to_b`.
|
86
|
+
|
83
87
|
```ruby
|
84
88
|
:'1'.to_b # => true
|
85
89
|
:t.to_b # => true
|
@@ -108,7 +112,10 @@ require 'wannabe_bool'
|
|
108
112
|
:wherever.to_b # => false
|
109
113
|
```
|
110
114
|
|
111
|
-
####
|
115
|
+
#### Numeric
|
116
|
+
Returns `false` if number is zero. Returns `true` otherwise.
|
117
|
+
|
118
|
+
##### Integer
|
112
119
|
```ruby
|
113
120
|
0.to_b # => false
|
114
121
|
1.to_b # => true
|
@@ -117,17 +124,43 @@ require 'wannabe_bool'
|
|
117
124
|
-2.to_b # => true
|
118
125
|
```
|
119
126
|
|
127
|
+
##### Float
|
128
|
+
```ruby
|
129
|
+
0.0.to_b # => false
|
130
|
+
0.1.to_b # => true
|
131
|
+
1.0.to_b # => true
|
132
|
+
-0.1.to_b # => true
|
133
|
+
-1.0.to_b # => true
|
134
|
+
```
|
135
|
+
|
136
|
+
##### BigDecimal
|
137
|
+
```ruby
|
138
|
+
require 'bigdecimal'
|
139
|
+
|
140
|
+
BigDecimal('0.0').to_b # => false
|
141
|
+
BigDecimal('0.1').to_b # => true
|
142
|
+
BigDecimal('1.0').to_b # => true
|
143
|
+
BigDecimal('-0.1').to_b # => true
|
144
|
+
BigDecimal('-1.0').to_b # => true
|
145
|
+
```
|
146
|
+
|
120
147
|
#### TrueClass
|
148
|
+
Returns `true`.
|
149
|
+
|
121
150
|
```ruby
|
122
151
|
true.to_b # => true
|
123
152
|
```
|
124
153
|
|
125
154
|
#### FalseClass
|
155
|
+
Returns `false`.
|
156
|
+
|
126
157
|
```ruby
|
127
158
|
false.to_b # => false
|
128
159
|
```
|
129
160
|
|
130
161
|
#### NilClass
|
162
|
+
Returns `false`.
|
163
|
+
|
131
164
|
```ruby
|
132
165
|
nil.to_b # => false
|
133
166
|
```
|
@@ -159,6 +192,10 @@ fake.published = :true
|
|
159
192
|
fake.published? # => true
|
160
193
|
```
|
161
194
|
|
195
|
+
## Changelog
|
196
|
+
|
197
|
+
[See the changes in each version.](CHANGELOG.md)
|
198
|
+
|
162
199
|
## Author
|
163
200
|
[Fernando Hamasaki de Amorim (prodis)](http://prodis.blog.br)
|
164
201
|
|
data/lib/wannabe_bool.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
module WannabeBool; end
|
2
|
+
|
1
3
|
require 'wannabe_bool/boolean'
|
2
|
-
require 'wannabe_bool/integer'
|
3
4
|
require 'wannabe_bool/nil'
|
4
|
-
require 'wannabe_bool/
|
5
|
+
require 'wannabe_bool/numeric'
|
6
|
+
require 'wannabe_bool/string'
|
7
|
+
require 'wannabe_bool/symbol'
|
5
8
|
require 'wannabe_bool/attributes'
|
@@ -1,19 +1,17 @@
|
|
1
|
-
module WannabeBool
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
end
|
1
|
+
module WannabeBool::Attributes
|
2
|
+
def self.included(base)
|
3
|
+
base.extend(ClassMethods)
|
4
|
+
end
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
module ClassMethods
|
7
|
+
def attr_wannabe_bool(*attributes)
|
8
|
+
attributes.each do |attr|
|
9
|
+
raise ArgumentError, "#{attr} method is not defined." unless method_defined?(attr)
|
11
10
|
|
12
|
-
|
11
|
+
next if method_defined?("#{attr}?")
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
13
|
+
define_method("#{attr}?") do
|
14
|
+
send(attr).to_b
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
data/lib/wannabe_bool/boolean.rb
CHANGED
data/lib/wannabe_bool/nil.rb
CHANGED
data/lib/wannabe_bool/version.rb
CHANGED
@@ -3,7 +3,7 @@ describe WannabeBool::Boolean do
|
|
3
3
|
subject { true }
|
4
4
|
|
5
5
|
describe '#to_b' do
|
6
|
-
it { expect(subject.to_b).to
|
6
|
+
it { expect(subject.to_b).to be true }
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
@@ -11,7 +11,7 @@ describe WannabeBool::Boolean do
|
|
11
11
|
subject { false }
|
12
12
|
|
13
13
|
describe '#to_b' do
|
14
|
-
it { expect(subject.to_b).to
|
14
|
+
it { expect(subject.to_b).to be false }
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
|
3
|
+
describe WannabeBool::Numeric do
|
4
|
+
context Integer do
|
5
|
+
describe '#to_b' do
|
6
|
+
context 'when value is 0' do
|
7
|
+
subject { 0 }
|
8
|
+
it { expect(subject.to_b).to be false }
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'positive values' do
|
12
|
+
(1..9).each do |value|
|
13
|
+
context "when value is #{value}" do
|
14
|
+
subject { value }
|
15
|
+
it { expect(subject.to_b).to be true }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'negative values' do
|
21
|
+
(-9..-1).each do |value|
|
22
|
+
context "when value is #{value}" do
|
23
|
+
subject { value }
|
24
|
+
it { expect(subject.to_b).to be true }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context Float do
|
32
|
+
describe '#to_b' do
|
33
|
+
context 'when value is 0.0' do
|
34
|
+
subject { 0.0 }
|
35
|
+
it { expect(subject.to_b).to be false }
|
36
|
+
end
|
37
|
+
|
38
|
+
context "when value is positive" do
|
39
|
+
subject { Random.rand }
|
40
|
+
it { expect(subject.to_b).to be true }
|
41
|
+
end
|
42
|
+
|
43
|
+
context "when value is negative" do
|
44
|
+
subject { Random.rand * -1 }
|
45
|
+
it { expect(subject.to_b).to be true }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context BigDecimal do
|
51
|
+
describe '#to_b' do
|
52
|
+
context 'when value is 0.0' do
|
53
|
+
subject { BigDecimal('0.0') }
|
54
|
+
it { expect(subject.to_b).to be false }
|
55
|
+
end
|
56
|
+
|
57
|
+
context "when value is positive" do
|
58
|
+
subject { BigDecimal('1.0') }
|
59
|
+
it { expect(subject.to_b).to be true }
|
60
|
+
end
|
61
|
+
|
62
|
+
context "when value is negative" do
|
63
|
+
subject { BigDecimal('-1.0') }
|
64
|
+
it { expect(subject.to_b).to be true }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
describe WannabeBool::String do
|
2
|
+
describe '#to_b' do
|
3
|
+
[ '1', '1 ', ' 1', ' 1 ',
|
4
|
+
't', 't ', ' t', ' t ',
|
5
|
+
'T', 'T ', ' T', ' T ',
|
6
|
+
'true', 'true ', ' true', ' true ',
|
7
|
+
'TRUE', 'TRUE ', ' TRUE', ' TRUE ',
|
8
|
+
'on', 'on ', ' on', ' on ',
|
9
|
+
'ON', 'ON ', ' ON ', ' ON ',
|
10
|
+
'y', 'y ', ' y', ' y ',
|
11
|
+
'Y', 'Y ', ' Y', ' Y ',
|
12
|
+
'yes', 'yes ', ' yes', ' yes ',
|
13
|
+
'YES', 'YES ', ' YES', ' YES '
|
14
|
+
].each do |value|
|
15
|
+
context "when string is '#{value}'" do
|
16
|
+
subject { value }
|
17
|
+
it { expect(subject.to_b).to be true }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
[ '',
|
22
|
+
'0',
|
23
|
+
'2', '2 ', ' 2', ' 2 ',
|
24
|
+
'-1', '-1 ', ' -1', ' -1 ',
|
25
|
+
'-2', '-2 ', ' -2', ' -2 ',
|
26
|
+
'f', 'F',
|
27
|
+
'false', 'FALSE',
|
28
|
+
'off', 'OFF',
|
29
|
+
'n', 'N',
|
30
|
+
'no', 'NO',
|
31
|
+
'not', 'NOT',
|
32
|
+
'wherever', 'Prodis'
|
33
|
+
].each do |value|
|
34
|
+
context "when string is '#{value}'" do
|
35
|
+
subject { value }
|
36
|
+
it { expect(subject.to_b).to be false }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
describe WannabeBool::Symbol do
|
2
|
+
describe '#to_b' do
|
3
|
+
[ :'1', :'1 ', :' 1 ', :' 1',
|
4
|
+
:t, :'t ', :' t', :' t ',
|
5
|
+
:T, :'T ', :' T', :' T ',
|
6
|
+
:true, :'true ', :' true', :' true ',
|
7
|
+
:TRUE, :'TRUE ', :' TRUE', :' TRUE ',
|
8
|
+
:on, :'on ', :' on', :' on ',
|
9
|
+
:ON, :'ON ', :' ON ', :' ON ',
|
10
|
+
:y, :'y ', :' y', :' y ',
|
11
|
+
:Y, :'Y ', :' Y', :' Y ',
|
12
|
+
:yes, :'yes ', :' yes', :' yes ',
|
13
|
+
:YES, :'YES ', :' YES', :' YES '
|
14
|
+
].each do |value|
|
15
|
+
context "when symbol is '#{value}'" do
|
16
|
+
subject { value }
|
17
|
+
it { expect(subject.to_b).to be true }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
[ :'',
|
22
|
+
:'0', :'2', :'-1', :'-2',
|
23
|
+
:f, :F,
|
24
|
+
:false, :FALSE,
|
25
|
+
:off, :OFF,
|
26
|
+
:n, :N,
|
27
|
+
:no, :NO,
|
28
|
+
:not, :NOT,
|
29
|
+
:wherever, :Prodis
|
30
|
+
].each do |value|
|
31
|
+
context "when symbol is '#{value}'" do
|
32
|
+
subject { value }
|
33
|
+
it { expect(subject.to_b).to be false }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/wannabe_bool.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.version = WannabeBool::VERSION
|
8
8
|
spec.author = 'Prodis a.k.a. Fernando Hamasaki de Amorim'
|
9
9
|
spec.email = 'prodis@gmail.com'
|
10
|
-
spec.summary = 'If string,
|
10
|
+
spec.summary = 'If string, numeric, symbol and nil values wanna be a boolean value, they can with the new #to_b method (and more).'
|
11
11
|
spec.description = spec.summary
|
12
12
|
spec.homepage = 'https://github.com/prodis/wannabe_bool'
|
13
13
|
spec.license = 'MIT'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wannabe_bool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prodis a.k.a. Fernando Hamasaki de Amorim
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: 'If string,
|
55
|
+
description: 'If string, numeric, symbol and nil values wanna be a boolean value,
|
56
56
|
they can with the new #to_b method (and more).'
|
57
57
|
email: prodis@gmail.com
|
58
58
|
executables: []
|
@@ -70,16 +70,18 @@ files:
|
|
70
70
|
- lib/wannabe_bool.rb
|
71
71
|
- lib/wannabe_bool/attributes.rb
|
72
72
|
- lib/wannabe_bool/boolean.rb
|
73
|
-
- lib/wannabe_bool/integer.rb
|
74
73
|
- lib/wannabe_bool/nil.rb
|
75
|
-
- lib/wannabe_bool/
|
74
|
+
- lib/wannabe_bool/numeric.rb
|
75
|
+
- lib/wannabe_bool/string.rb
|
76
|
+
- lib/wannabe_bool/symbol.rb
|
76
77
|
- lib/wannabe_bool/version.rb
|
77
78
|
- spec/spec_helper.rb
|
78
79
|
- spec/wannabe_bool/attributes_spec.rb
|
79
80
|
- spec/wannabe_bool/boolean_spec.rb
|
80
|
-
- spec/wannabe_bool/integer_spec.rb
|
81
81
|
- spec/wannabe_bool/nil_spec.rb
|
82
|
-
- spec/wannabe_bool/
|
82
|
+
- spec/wannabe_bool/numeric_spec.rb
|
83
|
+
- spec/wannabe_bool/string_spec.rb
|
84
|
+
- spec/wannabe_bool/symbol_spec.rb
|
83
85
|
- wannabe_bool.gemspec
|
84
86
|
homepage: https://github.com/prodis/wannabe_bool
|
85
87
|
licenses:
|
@@ -101,15 +103,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
103
|
version: '0'
|
102
104
|
requirements: []
|
103
105
|
rubyforge_project:
|
104
|
-
rubygems_version: 2.4.
|
106
|
+
rubygems_version: 2.4.8
|
105
107
|
signing_key:
|
106
108
|
specification_version: 4
|
107
|
-
summary: 'If string,
|
109
|
+
summary: 'If string, numeric, symbol and nil values wanna be a boolean value, they
|
108
110
|
can with the new #to_b method (and more).'
|
109
111
|
test_files:
|
110
112
|
- spec/spec_helper.rb
|
111
113
|
- spec/wannabe_bool/attributes_spec.rb
|
112
114
|
- spec/wannabe_bool/boolean_spec.rb
|
113
|
-
- spec/wannabe_bool/integer_spec.rb
|
114
115
|
- spec/wannabe_bool/nil_spec.rb
|
115
|
-
- spec/wannabe_bool/
|
116
|
+
- spec/wannabe_bool/numeric_spec.rb
|
117
|
+
- spec/wannabe_bool/string_spec.rb
|
118
|
+
- spec/wannabe_bool/symbol_spec.rb
|
data/lib/wannabe_bool/integer.rb
DELETED
data/lib/wannabe_bool/object.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module WannabeBool
|
2
|
-
module Object
|
3
|
-
TRUE_VALUES = %W{t true on y yes}.freeze
|
4
|
-
|
5
|
-
def to_b
|
6
|
-
value = self.to_s.strip.downcase
|
7
|
-
|
8
|
-
if TRUE_VALUES.include?(value)
|
9
|
-
true
|
10
|
-
else
|
11
|
-
value.to_i.to_b
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class String
|
18
|
-
include WannabeBool::Object
|
19
|
-
end
|
20
|
-
|
21
|
-
class Symbol
|
22
|
-
include WannabeBool::Object
|
23
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
describe WannabeBool::Integer do
|
2
|
-
context Integer do
|
3
|
-
describe '#to_b' do
|
4
|
-
context 'when value is 0' do
|
5
|
-
subject { 0 }
|
6
|
-
it { expect(subject.to_b).to eql false }
|
7
|
-
end
|
8
|
-
|
9
|
-
context 'positive values' do
|
10
|
-
(1..9).each do |value|
|
11
|
-
context "when value is #{value}" do
|
12
|
-
subject { value }
|
13
|
-
it { expect(subject.to_b).to eql true }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
context 'negative values' do
|
19
|
-
(-9..-1).each do |value|
|
20
|
-
context "when value is #{value}" do
|
21
|
-
subject { value }
|
22
|
-
it { expect(subject.to_b).to eql true }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
describe WannabeBool::Object do
|
2
|
-
context String do
|
3
|
-
describe '#to_b' do
|
4
|
-
[ '1', '1 ', ' 1', ' 1 ',
|
5
|
-
'2', '2 ', ' 2', ' 2 ',
|
6
|
-
'-1', '-1 ', ' -1', ' -1 ',
|
7
|
-
'-2', '-2 ', ' -2', ' -2 ',
|
8
|
-
't', 't ', ' t', ' t ',
|
9
|
-
'T', 'T ', ' T', ' T ',
|
10
|
-
'true', 'true ', ' true', ' true ',
|
11
|
-
'TRUE', 'TRUE ', ' TRUE', ' TRUE ',
|
12
|
-
'on', 'on ', ' on', ' on ',
|
13
|
-
'ON', 'ON ', ' ON ', ' ON ',
|
14
|
-
'y', 'y ', ' y', ' y ',
|
15
|
-
'Y', 'Y ', ' Y', ' Y ',
|
16
|
-
'yes', 'yes ', ' yes', ' yes ',
|
17
|
-
'YES', 'YES ', ' YES', ' YES '
|
18
|
-
].each do |value|
|
19
|
-
context "when value is '#{value}'" do
|
20
|
-
subject { value }
|
21
|
-
it { expect(subject.to_b).to eql true }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
[ '',
|
26
|
-
'0',
|
27
|
-
'f', 'F',
|
28
|
-
'false', 'FALSE',
|
29
|
-
'off', 'OFF',
|
30
|
-
'n', 'N',
|
31
|
-
'no', 'NO',
|
32
|
-
'not', 'NOT',
|
33
|
-
'wherever', 'Prodis'
|
34
|
-
].each do |value|
|
35
|
-
context "when value is '#{value}'" do
|
36
|
-
subject { value }
|
37
|
-
it { expect(subject.to_b).to eql false }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context Symbol do
|
44
|
-
describe '#to_b' do
|
45
|
-
[ :'1', :'1 ', :' 1 ', :' 1',
|
46
|
-
:'2', :'2 ', :' 2 ', :' 2',
|
47
|
-
:'-1', :'-1 ', :' -1 ', :' -1',
|
48
|
-
:'-2', :'-2 ', :' -2 ', :' -2',
|
49
|
-
:t, :'t ', :' t', :' t ',
|
50
|
-
:T, :'T ', :' T', :' T ',
|
51
|
-
:true, :'true ', :' true', :' true ',
|
52
|
-
:TRUE, :'TRUE ', :' TRUE', :' TRUE ',
|
53
|
-
:on, :'on ', :' on', :' on ',
|
54
|
-
:ON, :'ON ', :' ON ', :' ON ',
|
55
|
-
:y, :'y ', :' y', :' y ',
|
56
|
-
:Y, :'Y ', :' Y', :' Y ',
|
57
|
-
:yes, :'yes ', :' yes', :' yes ',
|
58
|
-
:YES, :'YES ', :' YES', :' YES '
|
59
|
-
].each do |value|
|
60
|
-
context "when value is '#{value}'" do
|
61
|
-
subject { value }
|
62
|
-
it { expect(subject.to_b).to eql true }
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
[ :'',
|
67
|
-
:'0',
|
68
|
-
:f, :F,
|
69
|
-
:false,
|
70
|
-
:FALSE,
|
71
|
-
:off, :OFF,
|
72
|
-
:n, :N,
|
73
|
-
:no, :NO,
|
74
|
-
:not, :NOT,
|
75
|
-
:wherever, :Prodis
|
76
|
-
].each do |value|
|
77
|
-
context "when value is '#{value}'" do
|
78
|
-
subject { value }
|
79
|
-
it { expect(subject.to_b).to eql false }
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|