tbpgr_utils 0.0.40 → 0.0.41
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.
- data/README.md +57 -0
- data/lib/open_classes/kernel/aa_ancestors.rb +70 -70
- data/lib/open_classes/object/any_of.rb +14 -0
- data/lib/open_classes/object/boolean.rb +16 -0
- data/lib/open_classes/object/guard.rb +66 -0
- data/lib/open_classes/object/my_methods.rb +29 -0
- data/lib/open_classes/object/to_bool.rb +18 -0
- data/lib/open_classes/object.rb +5 -63
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/open_classes/kernel/aa_ancestors_spec.rb +2 -2
- data/spec/open_classes/object/any_of_spec.rb +72 -0
- data/spec/open_classes/object/boolean_spec.rb +67 -0
- data/spec/open_classes/object/guard_spec.rb +175 -0
- data/spec/open_classes/object/my_methods_spec.rb +61 -0
- data/spec/open_classes/object/to_bool_spec.rb +73 -0
- metadata +27 -14
- data/spec/open_classes/object_spec.rb +0 -259
data/README.md
CHANGED
@@ -67,6 +67,8 @@ Or install it yourself as:
|
|
67
67
|
|[TbpgrUtils Module.alias_methods](#modulealias_methods) |create alias methods |
|
68
68
|
|[TbpgrUtils Object#any_of?](#objectany_of) |if self match any one of items, return true |
|
69
69
|
|[TbpgrUtils Object#boolean?](#objectboolean) |data type check for boolean |
|
70
|
+
|[TbpgrUtils Object#guard](#objectguard) |data type check for guard |
|
71
|
+
|[TbpgrUtils Object#unless_guard](#objectunless_guard) |data type check for unless_guard |
|
70
72
|
|[TbpgrUtils Object#my_methods](#objectmy_methods) |return public/protected/private self define methods |
|
71
73
|
|[TbpgrUtils Object#to_bool](#objectto_bool) |syntax sugar of !!. convert [false, nil] => fasel, other => true. |
|
72
74
|
|[TbpgrUtils String#justify_table](#stringjustify_table) |justify pipe format table string |
|
@@ -1344,6 +1346,60 @@ p "true".boolean? # =>false
|
|
1344
1346
|
|
1345
1347
|
[back to list](#list)
|
1346
1348
|
|
1349
|
+
### Object#guard
|
1350
|
+
guard return case
|
1351
|
+
|
1352
|
+
~~~ruby
|
1353
|
+
def hoge(msg)
|
1354
|
+
guard(msg) {return "guard"}
|
1355
|
+
"not guard"
|
1356
|
+
end
|
1357
|
+
|
1358
|
+
hoge true # => "guard"
|
1359
|
+
hoge false # => "not guard"
|
1360
|
+
~~~
|
1361
|
+
|
1362
|
+
guard fail case
|
1363
|
+
|
1364
|
+
~~~ruby
|
1365
|
+
def hoge(msg)
|
1366
|
+
guard(msg) {fail ArgumentError, 'error!!'}
|
1367
|
+
"not guard"
|
1368
|
+
end
|
1369
|
+
|
1370
|
+
hoge true # => raise ArgumentError. message = error!!
|
1371
|
+
hoge false # => "not guard"
|
1372
|
+
~~~
|
1373
|
+
|
1374
|
+
[back to list](#list)
|
1375
|
+
|
1376
|
+
### Object#unless_guard
|
1377
|
+
unless_guard return case
|
1378
|
+
|
1379
|
+
~~~ruby
|
1380
|
+
def hoge(msg)
|
1381
|
+
unless_guard(msg) {return "unless_guard"}
|
1382
|
+
"not unless_guard"
|
1383
|
+
end
|
1384
|
+
|
1385
|
+
hoge false # => "unless_guard"
|
1386
|
+
hoge true # => "not unless_guard"
|
1387
|
+
~~~
|
1388
|
+
|
1389
|
+
unless_guard fail case
|
1390
|
+
|
1391
|
+
~~~ruby
|
1392
|
+
def hoge(msg)
|
1393
|
+
unless_guard(msg) {fail ArgumentError, 'error!!'}
|
1394
|
+
"not unless_guard"
|
1395
|
+
end
|
1396
|
+
|
1397
|
+
hoge false # => raise ArgumentError. message = error!!
|
1398
|
+
hoge true # => "not unless_guard"
|
1399
|
+
~~~
|
1400
|
+
|
1401
|
+
[back to list](#list)
|
1402
|
+
|
1347
1403
|
### Object#my_methods
|
1348
1404
|
~~~ruby
|
1349
1405
|
require 'tbpgr_utils'
|
@@ -1551,6 +1607,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
1551
1607
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
1552
1608
|
|
1553
1609
|
## History
|
1610
|
+
* version 0.0.41 : add Object#guard, unless_guard
|
1554
1611
|
* version 0.0.40 : add Kernel#aa_ancestors.
|
1555
1612
|
* version 0.0.39 : add String#surround.
|
1556
1613
|
* version 0.0.38 : add Array#together_shuffle(alias tshuffle).
|
@@ -1,70 +1,70 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'open_classes/string'
|
3
|
-
|
4
|
-
# Kernel
|
5
|
-
module Kernel
|
6
|
-
# Ascii Art Ancestors
|
7
|
-
#
|
8
|
-
# === Examples
|
9
|
-
#
|
10
|
-
# define class
|
11
|
-
#
|
12
|
-
# class BaseHogeForAncestors;end
|
13
|
-
# class HogeForAncestors < BaseHogeForAncestors;end
|
14
|
-
#
|
15
|
-
# execute aa_ancestors
|
16
|
-
#
|
17
|
-
# puts HogeForAncestors.aa_ancestors
|
18
|
-
#
|
19
|
-
# result is ...
|
20
|
-
#
|
21
|
-
# ----------------------
|
22
|
-
# | BasicObject |
|
23
|
-
# ----------------------
|
24
|
-
# |
|
25
|
-
# ----------------------
|
26
|
-
# | Kernel |
|
27
|
-
# ----------------------
|
28
|
-
# |
|
29
|
-
# ----------------------
|
30
|
-
# | Object |
|
31
|
-
# ----------------------
|
32
|
-
# |
|
33
|
-
# ----------------------
|
34
|
-
# |BaseHogeForAncestors|
|
35
|
-
# ----------------------
|
36
|
-
# |
|
37
|
-
# ----------------------
|
38
|
-
# | HogeForAncestors |
|
39
|
-
# ----------------------
|
40
|
-
def aa_ancestors
|
41
|
-
max_class = max_size_class
|
42
|
-
max = max_class.to_s.size
|
43
|
-
ca = centered_ancestors(max)
|
44
|
-
ba = surrounded_ancestors(ca)
|
45
|
-
connected_box_ancestors(ba, max)
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
def max_size_class
|
51
|
-
ancestors.max_by {|v|v.to_s.size}
|
52
|
-
end
|
53
|
-
|
54
|
-
def centered_ancestors(max)
|
55
|
-
ancestors.reverse.map {|v|v.to_s.center max}
|
56
|
-
end
|
57
|
-
|
58
|
-
def surrounded_ancestors(ca)
|
59
|
-
ca.reduce([]) {|ret, k|ret << k.surround}
|
60
|
-
end
|
61
|
-
|
62
|
-
def connected_box_ancestors(ba, max)
|
63
|
-
ba.join(ancestors_connector(max))
|
64
|
-
end
|
65
|
-
|
66
|
-
def ancestors_connector(max)
|
67
|
-
connector =
|
68
|
-
"\n#{connector}\n"
|
69
|
-
end
|
70
|
-
end
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'open_classes/string'
|
3
|
+
|
4
|
+
# Kernel
|
5
|
+
module Kernel
|
6
|
+
# Ascii Art Ancestors
|
7
|
+
#
|
8
|
+
# === Examples
|
9
|
+
#
|
10
|
+
# define class
|
11
|
+
#
|
12
|
+
# class BaseHogeForAncestors;end
|
13
|
+
# class HogeForAncestors < BaseHogeForAncestors;end
|
14
|
+
#
|
15
|
+
# execute aa_ancestors
|
16
|
+
#
|
17
|
+
# puts HogeForAncestors.aa_ancestors
|
18
|
+
#
|
19
|
+
# result is ...
|
20
|
+
#
|
21
|
+
# ----------------------
|
22
|
+
# | BasicObject |
|
23
|
+
# ----------------------
|
24
|
+
# |
|
25
|
+
# ----------------------
|
26
|
+
# | Kernel |
|
27
|
+
# ----------------------
|
28
|
+
# |
|
29
|
+
# ----------------------
|
30
|
+
# | Object |
|
31
|
+
# ----------------------
|
32
|
+
# |
|
33
|
+
# ----------------------
|
34
|
+
# |BaseHogeForAncestors|
|
35
|
+
# ----------------------
|
36
|
+
# |
|
37
|
+
# ----------------------
|
38
|
+
# | HogeForAncestors |
|
39
|
+
# ----------------------
|
40
|
+
def aa_ancestors
|
41
|
+
max_class = max_size_class
|
42
|
+
max = max_class.to_s.size
|
43
|
+
ca = centered_ancestors(max)
|
44
|
+
ba = surrounded_ancestors(ca)
|
45
|
+
connected_box_ancestors(ba, max)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def max_size_class
|
51
|
+
ancestors.max_by { |v|v.to_s.size }
|
52
|
+
end
|
53
|
+
|
54
|
+
def centered_ancestors(max)
|
55
|
+
ancestors.reverse.map { |v|v.to_s.center max }
|
56
|
+
end
|
57
|
+
|
58
|
+
def surrounded_ancestors(ca)
|
59
|
+
ca.reduce([]) { |ret, k|ret << k.surround }
|
60
|
+
end
|
61
|
+
|
62
|
+
def connected_box_ancestors(ba, max)
|
63
|
+
ba.join(ancestors_connector(max))
|
64
|
+
end
|
65
|
+
|
66
|
+
def ancestors_connector(max)
|
67
|
+
connector = '|'.rjust((max + 2) / 2)
|
68
|
+
"\n#{connector}\n"
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Object
|
4
|
+
class Object
|
5
|
+
# If self match any one of args, return true.
|
6
|
+
#
|
7
|
+
# "hoge".any_of? %w{hoge hige} # => true
|
8
|
+
# "hige".any_of? %w{hoge hige} # => true
|
9
|
+
# "hege".any_of? %w{hoge hige} # => false
|
10
|
+
def any_of?(*args)
|
11
|
+
args.each { |value|return true if self == value }
|
12
|
+
false
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Object
|
4
|
+
class Object
|
5
|
+
# Check boolean type
|
6
|
+
#
|
7
|
+
# boolean? true # => true
|
8
|
+
# boolean? false # => true
|
9
|
+
# boolean? nil # => false
|
10
|
+
# boolean? 'true' # => false
|
11
|
+
# boolean? 'false' # => false
|
12
|
+
# boolean? '' # => false
|
13
|
+
def boolean?
|
14
|
+
self.is_a?(TrueClass) || self.is_a?(FalseClass)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Object
|
4
|
+
class Object
|
5
|
+
# guard condition
|
6
|
+
#
|
7
|
+
# === Param
|
8
|
+
#
|
9
|
+
# * <tt>:condition</tt> - guard condition
|
10
|
+
#
|
11
|
+
# === Example
|
12
|
+
#
|
13
|
+
# guard return case
|
14
|
+
#
|
15
|
+
# def hoge(msg)
|
16
|
+
# guard(msg) {return "guard"}
|
17
|
+
# "not guard"
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# hoge true # => "guard"
|
21
|
+
# hoge false # => "not guard"
|
22
|
+
#
|
23
|
+
# guard fail case
|
24
|
+
#
|
25
|
+
# def hoge(msg)
|
26
|
+
# guard(msg) {fail ArgumentError, 'error!!'}
|
27
|
+
# "not guard"
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# hoge true # => raise ArgumentError. message = error!!
|
31
|
+
# hoge false # => "not guard"
|
32
|
+
def guard(condition)
|
33
|
+
yield if condition
|
34
|
+
end
|
35
|
+
|
36
|
+
# unless_guard condition
|
37
|
+
#
|
38
|
+
# === Param
|
39
|
+
#
|
40
|
+
# * <tt>:condition</tt> - guard condition
|
41
|
+
#
|
42
|
+
# === Example
|
43
|
+
#
|
44
|
+
# unless_guard return case
|
45
|
+
#
|
46
|
+
# def hoge(msg)
|
47
|
+
# unless_guard(msg) {return "unless_guard"}
|
48
|
+
# "not unless_guard"
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# hoge false # => "unless_guard"
|
52
|
+
# hoge true # => "not unless_guard"
|
53
|
+
#
|
54
|
+
# unless_guard fail case
|
55
|
+
#
|
56
|
+
# def hoge(msg)
|
57
|
+
# unless_guard(msg) {fail ArgumentError, 'error!!'}
|
58
|
+
# "not unless_guard"
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# hoge false # => raise ArgumentError. message = error!!
|
62
|
+
# hoge true # => "not unless_guard"
|
63
|
+
def unless_guard(condition)
|
64
|
+
yield unless condition
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Object
|
4
|
+
class Object
|
5
|
+
# Get self define methods.
|
6
|
+
#
|
7
|
+
# class SampleClass < String
|
8
|
+
# def public_hello
|
9
|
+
# "public hello"
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# protected
|
13
|
+
#
|
14
|
+
# def protected_hello
|
15
|
+
# "protected hello"
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# private
|
19
|
+
#
|
20
|
+
# def private_hello
|
21
|
+
# "private hello"
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# SampleClass.new.my_methods # => [:public_hello, :protected_hello, :private_hello]
|
26
|
+
def my_methods
|
27
|
+
public_methods(false) + protected_methods(false) + private_methods(false)
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Object
|
4
|
+
class Object
|
5
|
+
# you get bool value
|
6
|
+
#
|
7
|
+
# true.to_bool # => true
|
8
|
+
# false.to_bool # => false
|
9
|
+
# 0.to_bool # => true
|
10
|
+
# 1.to_bool # => true
|
11
|
+
# ''.to_bool # => true
|
12
|
+
# 'true'.to_bool # => true
|
13
|
+
# 'false'.to_bool # => true
|
14
|
+
# nil.to_bool # => false
|
15
|
+
def to_bool
|
16
|
+
!!self
|
17
|
+
end
|
18
|
+
end
|
data/lib/open_classes/object.rb
CHANGED
@@ -1,65 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# boolean? false # => true
|
9
|
-
# boolean? nil # => false
|
10
|
-
# boolean? 'true' # => false
|
11
|
-
# boolean? 'false' # => false
|
12
|
-
# boolean? '' # => false
|
13
|
-
def boolean?
|
14
|
-
self.is_a?(TrueClass) || self.is_a?(FalseClass)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Get self define methods.
|
18
|
-
#
|
19
|
-
# class SampleClass < String
|
20
|
-
# def public_hello
|
21
|
-
# "public hello"
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# protected
|
25
|
-
#
|
26
|
-
# def protected_hello
|
27
|
-
# "protected hello"
|
28
|
-
# end
|
29
|
-
#
|
30
|
-
# private
|
31
|
-
#
|
32
|
-
# def private_hello
|
33
|
-
# "private hello"
|
34
|
-
# end
|
35
|
-
# end
|
36
|
-
#
|
37
|
-
# SampleClass.new.my_methods # => [:public_hello, :protected_hello, :private_hello]
|
38
|
-
def my_methods
|
39
|
-
public_methods(false) + protected_methods(false) + private_methods(false)
|
40
|
-
end
|
41
|
-
|
42
|
-
# If self match any one of args, return true.
|
43
|
-
#
|
44
|
-
# "hoge".any_of? %w{hoge hige} # => true
|
45
|
-
# "hige".any_of? %w{hoge hige} # => true
|
46
|
-
# "hege".any_of? %w{hoge hige} # => false
|
47
|
-
def any_of?(*args)
|
48
|
-
args.each { |value|return true if self == value }
|
49
|
-
false
|
50
|
-
end
|
51
|
-
|
52
|
-
# you get bool value
|
53
|
-
#
|
54
|
-
# true.to_bool # => true
|
55
|
-
# false.to_bool # => false
|
56
|
-
# 0.to_bool # => true
|
57
|
-
# 1.to_bool # => true
|
58
|
-
# ''.to_bool # => true
|
59
|
-
# 'true'.to_bool # => true
|
60
|
-
# 'false'.to_bool # => true
|
61
|
-
# nil.to_bool # => false
|
62
|
-
def to_bool
|
63
|
-
!!self
|
64
|
-
end
|
65
|
-
end
|
3
|
+
require 'open_classes/object/boolean'
|
4
|
+
require 'open_classes/object/to_bool'
|
5
|
+
require 'open_classes/object/any_of'
|
6
|
+
require 'open_classes/object/my_methods'
|
7
|
+
require 'open_classes/object/guard'
|
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -4,8 +4,8 @@ require 'open_classes/kernel'
|
|
4
4
|
|
5
5
|
describe Kernel do
|
6
6
|
context :aa_ancestors do
|
7
|
-
class BaseHogeForAncestors;end
|
8
|
-
class HogeForAncestors < BaseHogeForAncestors;end
|
7
|
+
class BaseHogeForAncestors; end
|
8
|
+
class HogeForAncestors < BaseHogeForAncestors; end
|
9
9
|
|
10
10
|
cases = [
|
11
11
|
{
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Object do
|
6
|
+
context :any_of? do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: 'true case',
|
11
|
+
input: 'hoge',
|
12
|
+
check: %w{hoge hige},
|
13
|
+
expected: true,
|
14
|
+
},
|
15
|
+
{
|
16
|
+
case_no: 2,
|
17
|
+
case_title: 'true case',
|
18
|
+
input: 'hige',
|
19
|
+
check: %w{hoge hige},
|
20
|
+
expected: true,
|
21
|
+
},
|
22
|
+
{
|
23
|
+
case_no: 3,
|
24
|
+
case_title: 'false case',
|
25
|
+
input: 'hege',
|
26
|
+
check: %w{hoge hige},
|
27
|
+
expected: false,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
case_no: 4,
|
31
|
+
case_title: 'number true case',
|
32
|
+
input: 1,
|
33
|
+
check: [1, 2, 3, 4, 5],
|
34
|
+
expected: true,
|
35
|
+
},
|
36
|
+
{
|
37
|
+
case_no: 5,
|
38
|
+
case_title: 'number true case',
|
39
|
+
input: 6,
|
40
|
+
check: [1, 2, 3, 4, 5],
|
41
|
+
expected: false,
|
42
|
+
},
|
43
|
+
]
|
44
|
+
|
45
|
+
cases.each do |c|
|
46
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
47
|
+
begin
|
48
|
+
case_before c
|
49
|
+
|
50
|
+
# -- given --
|
51
|
+
# nothing
|
52
|
+
|
53
|
+
# -- when --
|
54
|
+
actual = c[:input].any_of?(*c[:check])
|
55
|
+
|
56
|
+
# -- then --
|
57
|
+
expect(actual).to eq(c[:expected])
|
58
|
+
ensure
|
59
|
+
case_after c
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def case_before(c)
|
64
|
+
# implement each case before
|
65
|
+
end
|
66
|
+
|
67
|
+
def case_after(c)
|
68
|
+
# implement each case after
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Object do
|
6
|
+
context :boolean? do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: 'true case',
|
11
|
+
input: true,
|
12
|
+
expected: true,
|
13
|
+
},
|
14
|
+
{
|
15
|
+
case_no: 2,
|
16
|
+
case_title: 'false case',
|
17
|
+
input: false,
|
18
|
+
expected: true,
|
19
|
+
},
|
20
|
+
{
|
21
|
+
case_no: 3,
|
22
|
+
case_title: "string 'true' case",
|
23
|
+
input: 'true',
|
24
|
+
expected: false,
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 4,
|
28
|
+
case_title: 'empty case',
|
29
|
+
input: '',
|
30
|
+
expected: false,
|
31
|
+
},
|
32
|
+
{
|
33
|
+
case_no: 5,
|
34
|
+
case_title: 'nil case',
|
35
|
+
input: nil,
|
36
|
+
expected: false,
|
37
|
+
},
|
38
|
+
]
|
39
|
+
|
40
|
+
cases.each do |c|
|
41
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
42
|
+
begin
|
43
|
+
case_before c
|
44
|
+
|
45
|
+
# -- given --
|
46
|
+
# nothing
|
47
|
+
|
48
|
+
# -- when --
|
49
|
+
actual = c[:input].boolean?
|
50
|
+
|
51
|
+
# -- then --
|
52
|
+
expect(actual).to eq(c[:expected])
|
53
|
+
ensure
|
54
|
+
case_after c
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def case_before(c)
|
59
|
+
# implement each case before
|
60
|
+
end
|
61
|
+
|
62
|
+
def case_after(c)
|
63
|
+
# implement each case after
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,175 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Object do
|
6
|
+
context :guard do
|
7
|
+
class HogeGuard
|
8
|
+
def hoge_guard_return(input)
|
9
|
+
guard(input) { return 'guard!!' }
|
10
|
+
'not guard return'
|
11
|
+
end
|
12
|
+
|
13
|
+
def hoge_guard_fail(input)
|
14
|
+
guard(input) { fail ArgumentError, 'error!!' }
|
15
|
+
'not guard fail'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
cases = [
|
19
|
+
{
|
20
|
+
case_no: 1,
|
21
|
+
case_title: 'gard return case',
|
22
|
+
input: true,
|
23
|
+
action: "return 'guard!!'",
|
24
|
+
expected: 'guard!!',
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 2,
|
28
|
+
case_title: 'not gard return case',
|
29
|
+
input: false,
|
30
|
+
action: "return 'guard!!'",
|
31
|
+
expected: 'not guard return',
|
32
|
+
},
|
33
|
+
{
|
34
|
+
case_no: 3,
|
35
|
+
case_title: 'gard fail case',
|
36
|
+
input: true,
|
37
|
+
action: "fail ArgumentError, 'error!!'",
|
38
|
+
fail: true,
|
39
|
+
expect_error: true
|
40
|
+
},
|
41
|
+
{
|
42
|
+
case_no: 4,
|
43
|
+
case_title: 'not gard fail case',
|
44
|
+
input: false,
|
45
|
+
action: "fail ArgumentError, 'error!!'",
|
46
|
+
fail: true,
|
47
|
+
expected: 'not guard fail',
|
48
|
+
},
|
49
|
+
]
|
50
|
+
|
51
|
+
cases.each do |c|
|
52
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
53
|
+
begin
|
54
|
+
case_before c
|
55
|
+
|
56
|
+
# -- given --
|
57
|
+
# nothing
|
58
|
+
|
59
|
+
if c[:fail]
|
60
|
+
if c[:expect_error]
|
61
|
+
# -- when & then --
|
62
|
+
lambda { HogeGuard.new.hoge_guard_fail c[:input] }.should raise_error(ArgumentError)
|
63
|
+
else
|
64
|
+
# -- when --
|
65
|
+
actual = HogeGuard.new.hoge_guard_fail c[:input]
|
66
|
+
# -- then --
|
67
|
+
expect(actual).to eq(c[:expected])
|
68
|
+
end
|
69
|
+
else
|
70
|
+
# -- when --
|
71
|
+
actual = HogeGuard.new.hoge_guard_return c[:input]
|
72
|
+
# -- then --
|
73
|
+
expect(actual).to eq(c[:expected])
|
74
|
+
end
|
75
|
+
|
76
|
+
ensure
|
77
|
+
case_after c
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def case_before(c)
|
82
|
+
# implement each case before
|
83
|
+
end
|
84
|
+
|
85
|
+
def case_after(c)
|
86
|
+
# implement each case after
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context :unless_guard do
|
92
|
+
class HogeUnlessGuard
|
93
|
+
def hoge_unless_guard_return(input)
|
94
|
+
unless_guard(input) { return 'unless_guard!!' }
|
95
|
+
'not unless_guard return'
|
96
|
+
end
|
97
|
+
|
98
|
+
def hoge_unless_guard_fail(input)
|
99
|
+
unless_guard(input) { fail ArgumentError, 'error!!' }
|
100
|
+
'not unless_guard fail'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
cases = [
|
104
|
+
{
|
105
|
+
case_no: 1,
|
106
|
+
case_title: 'unless_gard return case',
|
107
|
+
input: false,
|
108
|
+
action: "return 'unless_guard!!'",
|
109
|
+
expected: 'unless_guard!!',
|
110
|
+
},
|
111
|
+
{
|
112
|
+
case_no: 2,
|
113
|
+
case_title: 'not unless_gard return case',
|
114
|
+
input: true,
|
115
|
+
action: "return 'unless_guard!!'",
|
116
|
+
expected: 'not unless_guard return',
|
117
|
+
},
|
118
|
+
{
|
119
|
+
case_no: 3,
|
120
|
+
case_title: 'unless_gard fail case',
|
121
|
+
input: false,
|
122
|
+
action: "fail ArgumentError, 'error!!'",
|
123
|
+
fail: true,
|
124
|
+
expect_error: true
|
125
|
+
},
|
126
|
+
{
|
127
|
+
case_no: 4,
|
128
|
+
case_title: 'not unless_gard fail case',
|
129
|
+
input: true,
|
130
|
+
action: "fail ArgumentError, 'error!!'",
|
131
|
+
fail: true,
|
132
|
+
expected: 'not unless_guard fail',
|
133
|
+
},
|
134
|
+
]
|
135
|
+
|
136
|
+
cases.each do |c|
|
137
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
138
|
+
begin
|
139
|
+
case_before c
|
140
|
+
|
141
|
+
# -- given --
|
142
|
+
# nothing
|
143
|
+
|
144
|
+
if c[:fail]
|
145
|
+
if c[:expect_error]
|
146
|
+
# -- when & then --
|
147
|
+
lambda { HogeUnlessGuard.new.hoge_unless_guard_fail c[:input] }.should raise_error(ArgumentError)
|
148
|
+
else
|
149
|
+
# -- when --
|
150
|
+
actual = HogeUnlessGuard.new.hoge_unless_guard_fail c[:input]
|
151
|
+
# -- then --
|
152
|
+
expect(actual).to eq(c[:expected])
|
153
|
+
end
|
154
|
+
else
|
155
|
+
# -- when --
|
156
|
+
actual = HogeUnlessGuard.new.hoge_unless_guard_return c[:input]
|
157
|
+
# -- then --
|
158
|
+
expect(actual).to eq(c[:expected])
|
159
|
+
end
|
160
|
+
|
161
|
+
ensure
|
162
|
+
case_after c
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def case_before(c)
|
167
|
+
# implement each case before
|
168
|
+
end
|
169
|
+
|
170
|
+
def case_after(c)
|
171
|
+
# implement each case after
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Object do
|
6
|
+
context :my_methods do
|
7
|
+
SampleClass = Class.new(String) do
|
8
|
+
def public_hello
|
9
|
+
"#{self} public hello"
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def protected_hello
|
15
|
+
"#{self} protected hello"
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def private_hello
|
21
|
+
"#{self} private hello"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
cases = [
|
26
|
+
{
|
27
|
+
case_no: 1,
|
28
|
+
case_title: 'true case',
|
29
|
+
input: SampleClass.new,
|
30
|
+
expected: [:public_hello, :protected_hello, :private_hello],
|
31
|
+
},
|
32
|
+
]
|
33
|
+
|
34
|
+
cases.each do |c|
|
35
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
36
|
+
begin
|
37
|
+
case_before c
|
38
|
+
|
39
|
+
# -- given --
|
40
|
+
# nothing
|
41
|
+
|
42
|
+
# -- when --
|
43
|
+
actual = c[:input].my_methods
|
44
|
+
|
45
|
+
# -- then --
|
46
|
+
expect(actual).to eq(c[:expected])
|
47
|
+
ensure
|
48
|
+
case_after c
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def case_before(c)
|
53
|
+
# implement each case before
|
54
|
+
end
|
55
|
+
|
56
|
+
def case_after(c)
|
57
|
+
# implement each case after
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Object do
|
6
|
+
context :to_bool do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: 'TrueClass case',
|
11
|
+
input: true,
|
12
|
+
expected: true,
|
13
|
+
},
|
14
|
+
{
|
15
|
+
case_no: 2,
|
16
|
+
case_title: 'FalseClass case',
|
17
|
+
input: false,
|
18
|
+
expected: false,
|
19
|
+
},
|
20
|
+
{
|
21
|
+
case_no: 3,
|
22
|
+
case_title: "string 'true' case",
|
23
|
+
input: 'true',
|
24
|
+
expected: true,
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 4,
|
28
|
+
case_title: "string 'false' case",
|
29
|
+
input: 'false',
|
30
|
+
expected: true,
|
31
|
+
},
|
32
|
+
{
|
33
|
+
case_no: 5,
|
34
|
+
case_title: 'empty case',
|
35
|
+
input: '',
|
36
|
+
expected: true,
|
37
|
+
},
|
38
|
+
{
|
39
|
+
case_no: 6,
|
40
|
+
case_title: 'nil case',
|
41
|
+
input: nil,
|
42
|
+
expected: false,
|
43
|
+
},
|
44
|
+
]
|
45
|
+
|
46
|
+
cases.each do |c|
|
47
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
48
|
+
begin
|
49
|
+
case_before c
|
50
|
+
|
51
|
+
# -- given --
|
52
|
+
# nothing
|
53
|
+
|
54
|
+
# -- when --
|
55
|
+
actual = c[:input].to_bool
|
56
|
+
|
57
|
+
# -- then --
|
58
|
+
expect(actual).to eq(c[:expected])
|
59
|
+
ensure
|
60
|
+
case_after c
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def case_before(c)
|
65
|
+
# implement each case before
|
66
|
+
end
|
67
|
+
|
68
|
+
def case_after(c)
|
69
|
+
# implement each case after
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tbpgr_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.41
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &27980232 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 4.0.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *27980232
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &27994020 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.3'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *27994020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &27990504 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *27990504
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &27989256 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.14.1
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *27989256
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &27988116 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 0.8.2
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *27988116
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|
@@ -118,6 +118,11 @@ files:
|
|
118
118
|
- lib/open_classes/kernel/p_evals.rb
|
119
119
|
- lib/open_classes/module.rb
|
120
120
|
- lib/open_classes/object.rb
|
121
|
+
- lib/open_classes/object/any_of.rb
|
122
|
+
- lib/open_classes/object/boolean.rb
|
123
|
+
- lib/open_classes/object/guard.rb
|
124
|
+
- lib/open_classes/object/my_methods.rb
|
125
|
+
- lib/open_classes/object/to_bool.rb
|
121
126
|
- lib/open_classes/string.rb
|
122
127
|
- lib/open_classes/string/justify_table.rb
|
123
128
|
- lib/open_classes/string/surround.rb
|
@@ -162,7 +167,11 @@ files:
|
|
162
167
|
- spec/open_classes/kernel/print_eval_spec.rb
|
163
168
|
- spec/open_classes/kernel/puts_eval_spec.rb
|
164
169
|
- spec/open_classes/module_spec.rb
|
165
|
-
- spec/open_classes/
|
170
|
+
- spec/open_classes/object/any_of_spec.rb
|
171
|
+
- spec/open_classes/object/boolean_spec.rb
|
172
|
+
- spec/open_classes/object/guard_spec.rb
|
173
|
+
- spec/open_classes/object/my_methods_spec.rb
|
174
|
+
- spec/open_classes/object/to_bool_spec.rb
|
166
175
|
- spec/open_classes/string/justify_table_spec.rb
|
167
176
|
- spec/open_classes/string/surround_spec.rb
|
168
177
|
- spec/spec_helper.rb
|
@@ -230,7 +239,11 @@ test_files:
|
|
230
239
|
- spec/open_classes/kernel/print_eval_spec.rb
|
231
240
|
- spec/open_classes/kernel/puts_eval_spec.rb
|
232
241
|
- spec/open_classes/module_spec.rb
|
233
|
-
- spec/open_classes/
|
242
|
+
- spec/open_classes/object/any_of_spec.rb
|
243
|
+
- spec/open_classes/object/boolean_spec.rb
|
244
|
+
- spec/open_classes/object/guard_spec.rb
|
245
|
+
- spec/open_classes/object/my_methods_spec.rb
|
246
|
+
- spec/open_classes/object/to_bool_spec.rb
|
234
247
|
- spec/open_classes/string/justify_table_spec.rb
|
235
248
|
- spec/open_classes/string/surround_spec.rb
|
236
249
|
- spec/spec_helper.rb
|
@@ -1,259 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'tbpgr_utils'
|
4
|
-
|
5
|
-
describe Object do
|
6
|
-
context :boolean? do
|
7
|
-
cases = [
|
8
|
-
{
|
9
|
-
case_no: 1,
|
10
|
-
case_title: 'true case',
|
11
|
-
input: true,
|
12
|
-
expected: true,
|
13
|
-
},
|
14
|
-
{
|
15
|
-
case_no: 2,
|
16
|
-
case_title: 'false case',
|
17
|
-
input: false,
|
18
|
-
expected: true,
|
19
|
-
},
|
20
|
-
{
|
21
|
-
case_no: 3,
|
22
|
-
case_title: "string 'true' case",
|
23
|
-
input: 'true',
|
24
|
-
expected: false,
|
25
|
-
},
|
26
|
-
{
|
27
|
-
case_no: 4,
|
28
|
-
case_title: 'empty case',
|
29
|
-
input: '',
|
30
|
-
expected: false,
|
31
|
-
},
|
32
|
-
{
|
33
|
-
case_no: 5,
|
34
|
-
case_title: 'nil case',
|
35
|
-
input: nil,
|
36
|
-
expected: false,
|
37
|
-
},
|
38
|
-
]
|
39
|
-
|
40
|
-
cases.each do |c|
|
41
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
42
|
-
begin
|
43
|
-
case_before c
|
44
|
-
|
45
|
-
# -- given --
|
46
|
-
# nothing
|
47
|
-
|
48
|
-
# -- when --
|
49
|
-
actual = c[:input].boolean?
|
50
|
-
|
51
|
-
# -- then --
|
52
|
-
expect(actual).to eq(c[:expected])
|
53
|
-
ensure
|
54
|
-
case_after c
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def case_before(c)
|
59
|
-
# implement each case before
|
60
|
-
end
|
61
|
-
|
62
|
-
def case_after(c)
|
63
|
-
# implement each case after
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
context :my_methods do
|
69
|
-
SampleClass = Class.new(String) do
|
70
|
-
def public_hello
|
71
|
-
"#{self} public hello"
|
72
|
-
end
|
73
|
-
|
74
|
-
protected
|
75
|
-
|
76
|
-
def protected_hello
|
77
|
-
"#{self} protected hello"
|
78
|
-
end
|
79
|
-
|
80
|
-
private
|
81
|
-
|
82
|
-
def private_hello
|
83
|
-
"#{self} private hello"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
cases = [
|
88
|
-
{
|
89
|
-
case_no: 1,
|
90
|
-
case_title: 'true case',
|
91
|
-
input: SampleClass.new,
|
92
|
-
expected: [:public_hello, :protected_hello, :private_hello],
|
93
|
-
},
|
94
|
-
]
|
95
|
-
|
96
|
-
cases.each do |c|
|
97
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
98
|
-
begin
|
99
|
-
case_before c
|
100
|
-
|
101
|
-
# -- given --
|
102
|
-
# nothing
|
103
|
-
|
104
|
-
# -- when --
|
105
|
-
actual = c[:input].my_methods
|
106
|
-
|
107
|
-
# -- then --
|
108
|
-
expect(actual).to eq(c[:expected])
|
109
|
-
ensure
|
110
|
-
case_after c
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
def case_before(c)
|
115
|
-
# implement each case before
|
116
|
-
end
|
117
|
-
|
118
|
-
def case_after(c)
|
119
|
-
# implement each case after
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
|
125
|
-
context :any_of? do
|
126
|
-
cases = [
|
127
|
-
{
|
128
|
-
case_no: 1,
|
129
|
-
case_title: 'true case',
|
130
|
-
input: 'hoge',
|
131
|
-
check: %w{hoge hige},
|
132
|
-
expected: true,
|
133
|
-
},
|
134
|
-
{
|
135
|
-
case_no: 2,
|
136
|
-
case_title: 'true case',
|
137
|
-
input: 'hige',
|
138
|
-
check: %w{hoge hige},
|
139
|
-
expected: true,
|
140
|
-
},
|
141
|
-
{
|
142
|
-
case_no: 3,
|
143
|
-
case_title: 'false case',
|
144
|
-
input: 'hege',
|
145
|
-
check: %w{hoge hige},
|
146
|
-
expected: false,
|
147
|
-
},
|
148
|
-
{
|
149
|
-
case_no: 4,
|
150
|
-
case_title: 'number true case',
|
151
|
-
input: 1,
|
152
|
-
check: [1, 2, 3, 4, 5],
|
153
|
-
expected: true,
|
154
|
-
},
|
155
|
-
{
|
156
|
-
case_no: 5,
|
157
|
-
case_title: 'number true case',
|
158
|
-
input: 6,
|
159
|
-
check: [1, 2, 3, 4, 5],
|
160
|
-
expected: false,
|
161
|
-
},
|
162
|
-
]
|
163
|
-
|
164
|
-
cases.each do |c|
|
165
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
166
|
-
begin
|
167
|
-
case_before c
|
168
|
-
|
169
|
-
# -- given --
|
170
|
-
# nothing
|
171
|
-
|
172
|
-
# -- when --
|
173
|
-
actual = c[:input].any_of?(*c[:check])
|
174
|
-
|
175
|
-
# -- then --
|
176
|
-
expect(actual).to eq(c[:expected])
|
177
|
-
ensure
|
178
|
-
case_after c
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
def case_before(c)
|
183
|
-
# implement each case before
|
184
|
-
end
|
185
|
-
|
186
|
-
def case_after(c)
|
187
|
-
# implement each case after
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
context :to_bool do
|
193
|
-
cases = [
|
194
|
-
{
|
195
|
-
case_no: 1,
|
196
|
-
case_title: 'TrueClass case',
|
197
|
-
input: true,
|
198
|
-
expected: true,
|
199
|
-
},
|
200
|
-
{
|
201
|
-
case_no: 2,
|
202
|
-
case_title: 'FalseClass case',
|
203
|
-
input: false,
|
204
|
-
expected: false,
|
205
|
-
},
|
206
|
-
{
|
207
|
-
case_no: 3,
|
208
|
-
case_title: "string 'true' case",
|
209
|
-
input: 'true',
|
210
|
-
expected: true,
|
211
|
-
},
|
212
|
-
{
|
213
|
-
case_no: 4,
|
214
|
-
case_title: "string 'false' case",
|
215
|
-
input: 'false',
|
216
|
-
expected: true,
|
217
|
-
},
|
218
|
-
{
|
219
|
-
case_no: 5,
|
220
|
-
case_title: 'empty case',
|
221
|
-
input: '',
|
222
|
-
expected: true,
|
223
|
-
},
|
224
|
-
{
|
225
|
-
case_no: 6,
|
226
|
-
case_title: 'nil case',
|
227
|
-
input: nil,
|
228
|
-
expected: false,
|
229
|
-
},
|
230
|
-
]
|
231
|
-
|
232
|
-
cases.each do |c|
|
233
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
234
|
-
begin
|
235
|
-
case_before c
|
236
|
-
|
237
|
-
# -- given --
|
238
|
-
# nothing
|
239
|
-
|
240
|
-
# -- when --
|
241
|
-
actual = c[:input].to_bool
|
242
|
-
|
243
|
-
# -- then --
|
244
|
-
expect(actual).to eq(c[:expected])
|
245
|
-
ensure
|
246
|
-
case_after c
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
def case_before(c)
|
251
|
-
# implement each case before
|
252
|
-
end
|
253
|
-
|
254
|
-
def case_after(c)
|
255
|
-
# implement each case after
|
256
|
-
end
|
257
|
-
end
|
258
|
-
end
|
259
|
-
end
|