more_core_extensions 3.2.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +9 -0
- data/.rubocop.yml +4 -0
- data/.rubocop_local.yml +0 -0
- data/.travis.yml +18 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile +8 -0
- data/README.md +21 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/more_core_extensions/all.rb +2 -0
- data/lib/more_core_extensions/core_ext/hash/sorting.rb +20 -0
- data/lib/more_core_extensions/core_ext/hash.rb +2 -1
- data/lib/more_core_extensions/core_ext/object/descendants.rb +17 -0
- data/lib/more_core_extensions/core_ext/object.rb +1 -0
- data/lib/more_core_extensions/core_ext/range/step_value.rb +45 -0
- data/lib/more_core_extensions/core_ext/range.rb +1 -0
- data/lib/more_core_extensions/core_ext/string/decimal_suffix.rb +17 -0
- data/lib/more_core_extensions/core_ext/string.rb +1 -0
- data/lib/more_core_extensions/core_ext/symbol/to_i.rb +9 -0
- data/lib/more_core_extensions/core_ext/symbol.rb +1 -0
- data/lib/more_core_extensions/version.rb +1 -1
- data/more_core_extensions.gemspec +32 -0
- metadata +36 -44
- data/spec/core_ext/array/deletes_spec.rb +0 -15
- data/spec/core_ext/array/duplicates_spec.rb +0 -9
- data/spec/core_ext/array/element_counts_spec.rb +0 -16
- data/spec/core_ext/array/inclusions_spec.rb +0 -51
- data/spec/core_ext/array/math_spec.rb +0 -16
- data/spec/core_ext/array/nested_spec.rb +0 -183
- data/spec/core_ext/array/random_spec.rb +0 -21
- data/spec/core_ext/array/stretch_spec.rb +0 -94
- data/spec/core_ext/array/tableize_spec.rb +0 -156
- data/spec/core_ext/hash/deletes_spec.rb +0 -15
- data/spec/core_ext/hash/nested_spec.rb +0 -232
- data/spec/core_ext/numeric/clamp_spec.rb +0 -17
- data/spec/core_ext/numeric/math_spec.rb +0 -6
- data/spec/core_ext/numeric/rounding_spec.rb +0 -19
- data/spec/core_ext/object/namespace_spec.rb +0 -30
- data/spec/core_ext/string/formats_spec.rb +0 -77
- data/spec/core_ext/string/hex_dump_spec.rb +0 -84
- data/spec/core_ext/string/iec60027_2_spec.rb +0 -13
- data/spec/spec_helper.rb +0 -85
@@ -1,183 +0,0 @@
|
|
1
|
-
shared_examples_for "core_ext/array/nested will not modify arguments" do |meth|
|
2
|
-
it "will not modify arguments" do
|
3
|
-
args = (meth == :store_path ? [1] : [])
|
4
|
-
|
5
|
-
key = [3, 0, 1, 2]
|
6
|
-
key2 = key.dup
|
7
|
-
array.send(meth, key2, *args)
|
8
|
-
expect(key2).to eq(key)
|
9
|
-
|
10
|
-
key = [4, 0, 1]
|
11
|
-
key2 = key.dup
|
12
|
-
array.send(meth, key2, *args)
|
13
|
-
expect(key2).to eq(key)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
shared_examples_for "core_ext/array/nested" do
|
18
|
-
context '#fetch_path' do
|
19
|
-
it "with various values" do
|
20
|
-
expect(array.fetch_path(0)).to eq(1)
|
21
|
-
expect(array.fetch_path(1)).to eq([])
|
22
|
-
expect(array.fetch_path(1, 0)).to be_nil
|
23
|
-
expect(array.fetch_path(1, 0, 1)).to be_nil
|
24
|
-
expect(array.fetch_path(2)).to eq([2])
|
25
|
-
expect(array.fetch_path(2, 0)).to eq(2)
|
26
|
-
expect(array.fetch_path(-4, 0)).to eq(2)
|
27
|
-
expect(array.fetch_path(2, 0, 1)).to be_nil
|
28
|
-
expect(array.fetch_path(3, 0, 0, 0)).to eq(3)
|
29
|
-
expect(array.fetch_path(3, 0, 1, 999)).to be_nil
|
30
|
-
expect(array.fetch_path(3, 0, 1, 2, 3)).to be_nil
|
31
|
-
expect(array.fetch_path(4)).to eq([nil, nil, nil, nil])
|
32
|
-
expect(array.fetch_path(4, 0)).to be_nil
|
33
|
-
expect(array.fetch_path(4, 0, 1)).to be_nil
|
34
|
-
expect(array.fetch_path(5)).to eq([])
|
35
|
-
expect(array.fetch_path(5, 0)).to be_nil
|
36
|
-
expect(array.fetch_path(5, 0, 1)).to be_nil
|
37
|
-
end
|
38
|
-
|
39
|
-
it "with a nil value should raise ArgumentError" do
|
40
|
-
expect { array.fetch_path(nil) }.to raise_error(ArgumentError)
|
41
|
-
expect { array.fetch_path(3, nil, 0) }.to raise_error(ArgumentError)
|
42
|
-
end
|
43
|
-
|
44
|
-
it "with invalid values" do
|
45
|
-
expect { array.fetch_path }.to raise_error(ArgumentError)
|
46
|
-
end
|
47
|
-
|
48
|
-
include_examples "core_ext/array/nested will not modify arguments", :fetch_path
|
49
|
-
end
|
50
|
-
|
51
|
-
context "#store_path" do
|
52
|
-
it "on an empty array" do
|
53
|
-
a = described_class.new
|
54
|
-
a.store_path(0, 1)
|
55
|
-
expect(a).to eq([1])
|
56
|
-
|
57
|
-
a = described_class.new
|
58
|
-
a.store_path(1, 0, 2)
|
59
|
-
expect(a).to eq([nil, [2]])
|
60
|
-
end
|
61
|
-
|
62
|
-
it "on an existing array" do
|
63
|
-
array.store_path(1, 0, 2)
|
64
|
-
expect(array[1]).to eq([2])
|
65
|
-
array.store_path(2, 0, 3)
|
66
|
-
expect(array[2]).to eq([3])
|
67
|
-
array.store_path(-4, 0, 3)
|
68
|
-
expect(array[2]).to eq([3])
|
69
|
-
end
|
70
|
-
|
71
|
-
it "on an existing item that is not a array" do
|
72
|
-
array.store_path(0, 2)
|
73
|
-
expect(array[0]).to eq(2)
|
74
|
-
array.store_path(0, 0, 3)
|
75
|
-
expect(array[0]).to eq([3])
|
76
|
-
end
|
77
|
-
|
78
|
-
it "with an array of args" do
|
79
|
-
a = described_class.new
|
80
|
-
a.store_path([3, 0, 1, 2], 3)
|
81
|
-
expect(a).to eq([nil, nil, nil, [[nil, [nil, nil, 3]]]])
|
82
|
-
end
|
83
|
-
|
84
|
-
it "with a nil value" do
|
85
|
-
a = described_class.new
|
86
|
-
a.store_path(0, 1, nil)
|
87
|
-
expect(a).to eq([[nil, nil]])
|
88
|
-
end
|
89
|
-
|
90
|
-
it "with an Array value" do
|
91
|
-
a = described_class.new
|
92
|
-
a.store_path(0, 1, [2, 3])
|
93
|
-
expect(a).to eq([[nil, [2, 3]]])
|
94
|
-
end
|
95
|
-
|
96
|
-
it "with a Hash value" do
|
97
|
-
a = described_class.new
|
98
|
-
a.store_path(0, 1, {2 => 3})
|
99
|
-
expect(a).to eq([[nil, {2 => 3}]])
|
100
|
-
end
|
101
|
-
|
102
|
-
it "with invalid values" do
|
103
|
-
expect { described_class.new.store_path }.to raise_error(ArgumentError)
|
104
|
-
expect { described_class.new.store_path(1) }.to raise_error(ArgumentError)
|
105
|
-
end
|
106
|
-
|
107
|
-
include_examples "core_ext/array/nested will not modify arguments", :store_path
|
108
|
-
end
|
109
|
-
|
110
|
-
context '#has_key_path?' do
|
111
|
-
it "with various values" do
|
112
|
-
expect(array.has_key_path?(0)).to be_truthy
|
113
|
-
expect(array.has_key_path?(1)).to be_truthy
|
114
|
-
expect(array.has_key_path?(1, 0)).to be_falsey
|
115
|
-
expect(array.has_key_path?(1, 0, 1)).to be_falsey
|
116
|
-
expect(array.has_key_path?(2)).to be_truthy
|
117
|
-
expect(array.has_key_path?(2, 0)).to be_truthy
|
118
|
-
expect(array.has_key_path?(2, 0, 1)).to be_falsey
|
119
|
-
expect(array.has_key_path?(3, 0, 1, 2)).to be_falsey
|
120
|
-
expect(array.has_key_path?(3, 0, 1, 999)).to be_falsey
|
121
|
-
expect(array.has_key_path?(3, 0, 1, 2, 3)).to be_falsey
|
122
|
-
expect(array.has_key_path?(4)).to be_truthy
|
123
|
-
expect(array.has_key_path?(4, 0)).to be_truthy
|
124
|
-
expect(array.has_key_path?(4, 0, 1)).to be_falsey
|
125
|
-
expect(array.has_key_path?(5)).to be_truthy
|
126
|
-
expect(array.has_key_path?(5, 0)).to be_falsey
|
127
|
-
expect(array.has_key_path?(5, 0, 1)).to be_falsey
|
128
|
-
end
|
129
|
-
|
130
|
-
it "with a nil value" do
|
131
|
-
expect { array.fetch_path(nil) }.to raise_error(ArgumentError)
|
132
|
-
expect { array.fetch_path(3, nil, 0) }.to raise_error(ArgumentError)
|
133
|
-
end
|
134
|
-
|
135
|
-
it "with invalid values" do
|
136
|
-
expect { array.has_key_path? }.to raise_error(ArgumentError)
|
137
|
-
end
|
138
|
-
|
139
|
-
include_examples "core_ext/array/nested will not modify arguments", :has_key_path?
|
140
|
-
end
|
141
|
-
|
142
|
-
context "#delete_path" do
|
143
|
-
it "on a nested array" do
|
144
|
-
array.delete_path(3, 0, 0, 0)
|
145
|
-
expect(array[3]).to eq([[[]]])
|
146
|
-
end
|
147
|
-
|
148
|
-
it "with an invalid path" do
|
149
|
-
array.delete_path(3, 0, 5)
|
150
|
-
expect(array[3]).to eq([[[3]]])
|
151
|
-
end
|
152
|
-
|
153
|
-
include_examples "core_ext/array/nested will not modify arguments", :delete_path
|
154
|
-
end
|
155
|
-
|
156
|
-
it "#delete_blank_paths" do
|
157
|
-
expect(array.delete_blank_paths).to eq([1, [2], [[[3]]]])
|
158
|
-
end
|
159
|
-
|
160
|
-
context "#find_path" do
|
161
|
-
it "with a real value" do
|
162
|
-
expect(array.find_path(3)).to eq([3, 0, 0, 0])
|
163
|
-
end
|
164
|
-
|
165
|
-
it "with non-existent value" do
|
166
|
-
expect(array.find_path(42)).to eq([])
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
describe Array do
|
172
|
-
let(:array) do
|
173
|
-
[ 1,
|
174
|
-
[],
|
175
|
-
[2],
|
176
|
-
[[[3]]],
|
177
|
-
Array.new(4),
|
178
|
-
described_class.new
|
179
|
-
]
|
180
|
-
end
|
181
|
-
|
182
|
-
include_examples "core_ext/array/nested"
|
183
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
describe Array do
|
2
|
-
around do |example|
|
3
|
-
old_seed = srand(12072)
|
4
|
-
example.call
|
5
|
-
srand(old_seed)
|
6
|
-
end
|
7
|
-
|
8
|
-
it '#random_index' do
|
9
|
-
expect(20.times.collect { [].random_index }.uniq.sort).to eq([nil])
|
10
|
-
expect(20.times.collect { %w{a}.random_index }.uniq.sort).to eq([0])
|
11
|
-
expect(20.times.collect { %w{a b}.random_index }.uniq.sort).to eq([0, 1])
|
12
|
-
expect(20.times.collect { %w{a b c d}.random_index }.uniq.sort).to eq([0, 1, 2, 3])
|
13
|
-
end
|
14
|
-
|
15
|
-
it '#random_element' do
|
16
|
-
expect(20.times.collect { [].random_element }.uniq.sort).to eq([nil])
|
17
|
-
expect(20.times.collect { %w{a}.random_element }.uniq.sort).to eq(%w{a})
|
18
|
-
expect(20.times.collect { %w{a b}.random_element }.uniq.sort).to eq(%w{a b})
|
19
|
-
expect(20.times.collect { %w{a b c d}.random_element }.uniq.sort).to eq(%w{a b c d})
|
20
|
-
end
|
21
|
-
end
|
@@ -1,94 +0,0 @@
|
|
1
|
-
describe Array do
|
2
|
-
STRETCH_CASES = [
|
3
|
-
# 2 parameter cases
|
4
|
-
# Message Test case Expected
|
5
|
-
"receiver same size as parameter", [[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]],
|
6
|
-
|
7
|
-
"receiver longer than parameter", [[1, 2, 3], [4, 5]], [[1, 2, 3], [4, 5, nil]],
|
8
|
-
"receiver shorter than parameter", [[1, 2], [4, 5, 6]], [[1, 2, nil], [4, 5, 6]],
|
9
|
-
|
10
|
-
"receiver with empty parameter", [[1, 2, 3], []], [[1, 2, 3], [nil, nil, nil]],
|
11
|
-
"receiver is empty with 1 parameter", [[], [4, 5, 6]], [[nil, nil, nil], [4, 5, 6]],
|
12
|
-
|
13
|
-
# 3 parameter cases
|
14
|
-
# Message Test Case Expected
|
15
|
-
"receiver longer than some parameters", [[1, 2, 3], [4, 5], [7, 8, 9]], [[1, 2, 3], [4, 5, nil], [7, 8, 9]],
|
16
|
-
"receiver shorter than parameters", [[1, 2], [4, 5, 6], [7, 8, 9]], [[1, 2, nil], [4, 5, 6], [7, 8, 9]],
|
17
|
-
|
18
|
-
"receiver longer than all parameters", [[1, 2, 3], [4, 5], [7, 8]], [[1, 2, 3], [4, 5, nil], [7, 8, nil]],
|
19
|
-
"receiver shorter than some parameters", [[1, 2], [4, 5, 6], [7, 8]], [[1, 2, nil], [4, 5, 6], [7, 8, nil]],
|
20
|
-
|
21
|
-
"receiver is empty with 2 parameters", [[], [], [7, 8, 9]], [[nil, nil, nil], [nil, nil, nil], [7, 8, 9]],
|
22
|
-
]
|
23
|
-
|
24
|
-
context '.stretch' do
|
25
|
-
STRETCH_CASES.each_slice(3) do |msg, test_case, expected|
|
26
|
-
it "where #{msg}" do
|
27
|
-
result = Array.stretch(*test_case)
|
28
|
-
result.each_with_index do |r, i|
|
29
|
-
expect(r).not_to equal(test_case[i])
|
30
|
-
expect(r).to eq(expected[i])
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context '.stretch!' do
|
37
|
-
STRETCH_CASES.each_slice(3) do |msg, test_case, expected|
|
38
|
-
it "where #{msg}" do
|
39
|
-
result = Array.stretch!(*test_case)
|
40
|
-
result.each_with_index do |r, i|
|
41
|
-
expect(r).to equal(test_case[i])
|
42
|
-
expect(r).to eq(expected[i])
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context '#stretch' do
|
49
|
-
STRETCH_CASES.each_slice(3) do |msg, test_case, expected|
|
50
|
-
it "where #{msg}" do
|
51
|
-
receiver, params = test_case[0], test_case[1..-1]
|
52
|
-
result = receiver.stretch(*params)
|
53
|
-
expect(result).not_to equal(receiver)
|
54
|
-
expect(result).to eq(expected[0])
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context '#stretch!' do
|
60
|
-
STRETCH_CASES.each_slice(3) do |msg, test_case, expected|
|
61
|
-
it "where #{msg}" do
|
62
|
-
receiver, params = test_case[0].dup, test_case[1..-1]
|
63
|
-
result = receiver.stretch!(*params)
|
64
|
-
expect(result).to equal(receiver)
|
65
|
-
expect(result).to eq(expected[0])
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
ZIP_STRETCHED_CASES = [
|
71
|
-
# 1 parameter tests
|
72
|
-
# Message Test case Expected
|
73
|
-
"receiver same size as parameter", [1, 2, 3], [[4, 5, 6]], [[1, 4], [2, 5], [3, 6]],
|
74
|
-
"receiver longer than parameter", [1, 2, 3], [[4, 5]], [[1, 4], [2, 5], [3, nil]],
|
75
|
-
"receiver shorter than parameter", [1, 2], [[4, 5, 6]], [[1, 4], [2, 5], [nil, 6]], # Different than zip
|
76
|
-
|
77
|
-
# 2 parameter tests
|
78
|
-
# Message Test case Expected
|
79
|
-
"receiver same size as all parameters", [1, 2, 3], [[4, 5, 6], [7, 8, 9]], [[1, 4, 7], [2, 5, 8], [3, 6, 9]],
|
80
|
-
"receiver longer than first parameter", [1, 2, 3], [[4, 5], [7, 8, 9]], [[1, 4, 7], [2, 5, 8], [3, nil, 9]],
|
81
|
-
"receiver shorter than all parameters", [1, 2], [[4, 5, 6], [7, 8, 9]], [[1, 4, 7], [2, 5, 8], [nil, 6, 9]], # Different than zip
|
82
|
-
"receiver shorter than first parameter", [1, 2], [[4, 5, 6], [7, 8]], [[1, 4, 7], [2, 5, 8], [nil, 6, nil]], # Different than zip
|
83
|
-
"receiver shorter than last parameter", [1, 2], [[4, 5], [7, 8, 9]], [[1, 4, 7], [2, 5, 8], [nil, nil, 9]], # Different than zip
|
84
|
-
"receiver is empty with 2 parameters", [], [[4, 5, 6], [7, 8, 9]], [[nil, 4, 7], [nil, 5, 8], [nil, 6, 9]], # Different than zip
|
85
|
-
]
|
86
|
-
|
87
|
-
context '#zip_stretched' do
|
88
|
-
ZIP_STRETCHED_CASES.each_slice(4) do |msg, receiver, params, expected|
|
89
|
-
it "where #{msg}" do
|
90
|
-
expect(receiver.zip_stretched(*params)).to eq(expected)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
@@ -1,156 +0,0 @@
|
|
1
|
-
describe Array do
|
2
|
-
context '#tableize' do
|
3
|
-
context "on an Array of Arrays" do
|
4
|
-
it 'normal case' do
|
5
|
-
test = [["Col1", "Col2"], ["Val1", "Val2"], ["Value3", "Value4"]]
|
6
|
-
expected = <<-EOF
|
7
|
-
Col1 | Col2
|
8
|
-
--------+--------
|
9
|
-
Val1 | Val2
|
10
|
-
Value3 | Value4
|
11
|
-
EOF
|
12
|
-
expect(test.tableize).to eq(expected)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'with numeric column values right justified' do
|
16
|
-
test = [["Col1", "Col2"], ["Val1", 200], ["Value3", 30]]
|
17
|
-
expected = <<-EOF
|
18
|
-
Col1 | Col2
|
19
|
-
--------+------
|
20
|
-
Val1 | 200
|
21
|
-
Value3 | 30
|
22
|
-
EOF
|
23
|
-
expect(test.tableize).to eq(expected)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'with really long column value' do
|
27
|
-
test = [["Col1", "Col2"], ["Val1", "Val2"], ["Really Really Long Value3", "Value4"]]
|
28
|
-
expected = <<-EOF
|
29
|
-
Col1 | Col2
|
30
|
-
---------------------------+--------
|
31
|
-
Val1 | Val2
|
32
|
-
Really Really Long Value3 | Value4
|
33
|
-
EOF
|
34
|
-
expect(test.tableize).to eq(expected)
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'with really long column value and :max_width option' do
|
38
|
-
test = [["Col1", "Col2"], ["Val1", "Val2"], ["Really Really Long Value3", "Value4"]]
|
39
|
-
expected = <<-EOF
|
40
|
-
Col1 | Col2
|
41
|
-
------------+--------
|
42
|
-
Val1 | Val2
|
43
|
-
Really Rea | Value4
|
44
|
-
EOF
|
45
|
-
expect(test.tableize(:max_width => 10)).to eq(expected)
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'with :header => false option' do
|
49
|
-
test = [["Col1", "Col2"], ["Val1", "Val2"], ["Value3", "Value4"]]
|
50
|
-
expected = <<-EOF
|
51
|
-
Col1 | Col2
|
52
|
-
Val1 | Val2
|
53
|
-
Value3 | Value4
|
54
|
-
EOF
|
55
|
-
expect(test.tableize(:header => false)).to eq(expected)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context "on an Array of Hashes" do
|
60
|
-
before do
|
61
|
-
@str_case = [{"Col3" => "Val3", "Col2" => "Val2", "Col1" => "Val1"}, {"Col3" => "Value6", "Col2" => "Value5", "Col1" => "Value4"}]
|
62
|
-
@sym_case = [{:Col3 => "Val3", :Col2 => "Val2", :Col1 => "Val1"}, {:Col3 => "Value6", :Col2 => "Value5", :Col1 => "Value4"}]
|
63
|
-
end
|
64
|
-
|
65
|
-
it "normal case" do
|
66
|
-
expected = <<-EOF
|
67
|
-
Col1 | Col2 | Col3
|
68
|
-
--------+--------+--------
|
69
|
-
Val1 | Val2 | Val3
|
70
|
-
Value4 | Value5 | Value6
|
71
|
-
EOF
|
72
|
-
|
73
|
-
expect(@str_case.tableize).to eq(expected)
|
74
|
-
expect(@sym_case.tableize).to eq(expected)
|
75
|
-
end
|
76
|
-
|
77
|
-
context "with :columns option" do
|
78
|
-
before do
|
79
|
-
@expected = <<-EOF
|
80
|
-
Col3 | Col1 | Col2
|
81
|
-
--------+--------+--------
|
82
|
-
Val3 | Val1 | Val2
|
83
|
-
Value6 | Value4 | Value5
|
84
|
-
EOF
|
85
|
-
end
|
86
|
-
|
87
|
-
it "normal case" do
|
88
|
-
expect(@str_case.tableize(:columns => ["Col3", "Col1", "Col2"])).to eq(@expected)
|
89
|
-
expect(@sym_case.tableize(:columns => [:Col3, :Col1, :Col2 ])).to eq(@expected)
|
90
|
-
end
|
91
|
-
|
92
|
-
it "with only some values" do
|
93
|
-
expected = <<-EOF
|
94
|
-
Col3 | Col1
|
95
|
-
--------+--------
|
96
|
-
Val3 | Val1
|
97
|
-
Value6 | Value4
|
98
|
-
EOF
|
99
|
-
|
100
|
-
expect(@str_case.tableize(:columns => ["Col3", "Col1"])).to eq(expected)
|
101
|
-
expect(@sym_case.tableize(:columns => [:Col3, :Col1 ])).to eq(expected)
|
102
|
-
end
|
103
|
-
|
104
|
-
it "and :leading_columns option" do
|
105
|
-
expect(@str_case.tableize(:columns => ["Col3", "Col1", "Col2"], :leading_columns => ["Col1"])).to eq(@expected)
|
106
|
-
expect(@sym_case.tableize(:columns => [:Col3, :Col1, :Col2 ], :leading_columns => [:Col1 ])).to eq(@expected)
|
107
|
-
end
|
108
|
-
|
109
|
-
it "and :trailing_columns option" do
|
110
|
-
expect(@str_case.tableize(:columns => ["Col3", "Col1", "Col2"], :trailing_columns => ["Col1"])).to eq(@expected)
|
111
|
-
expect(@sym_case.tableize(:columns => [:Col3, :Col1, :Col2 ], :trailing_columns => [:Col1 ])).to eq(@expected)
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
it "with :leading_columns option" do
|
116
|
-
expected = <<-EOF
|
117
|
-
Col3 | Col2 | Col1
|
118
|
-
--------+--------+--------
|
119
|
-
Val3 | Val2 | Val1
|
120
|
-
Value6 | Value5 | Value4
|
121
|
-
EOF
|
122
|
-
|
123
|
-
expect(@str_case.tableize(:leading_columns => ["Col3", "Col2"])).to eq(expected)
|
124
|
-
expect(@sym_case.tableize(:leading_columns => [:Col3, :Col2 ])).to eq(expected)
|
125
|
-
end
|
126
|
-
|
127
|
-
it "with :trailing_columns option" do
|
128
|
-
expected = <<-EOF
|
129
|
-
Col1 | Col3 | Col2
|
130
|
-
--------+--------+--------
|
131
|
-
Val1 | Val3 | Val2
|
132
|
-
Value4 | Value6 | Value5
|
133
|
-
EOF
|
134
|
-
|
135
|
-
expect(@str_case.tableize(:trailing_columns => ["Col3", "Col2"])).to eq(expected)
|
136
|
-
expect(@sym_case.tableize(:trailing_columns => [:Col3, :Col2 ])).to eq(expected)
|
137
|
-
end
|
138
|
-
|
139
|
-
it "with both :leading_columns and :trailing_columns options" do
|
140
|
-
expected = <<-EOF
|
141
|
-
Col3 | Col1 | Col2
|
142
|
-
--------+--------+--------
|
143
|
-
Val3 | Val1 | Val2
|
144
|
-
Value6 | Value4 | Value5
|
145
|
-
EOF
|
146
|
-
|
147
|
-
expect(@str_case.tableize(:leading_columns => ["Col3"], :trailing_columns => ["Col2"])).to eq(expected)
|
148
|
-
expect(@sym_case.tableize(:leading_columns => [:Col3 ], :trailing_columns => [:Col2 ])).to eq(expected)
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
it 'with an invalid receiver' do
|
153
|
-
expect { [1, 2, 3].tableize }.to raise_error(RuntimeError)
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
describe Hash do
|
2
|
-
it "#delete_nils" do
|
3
|
-
expect({}.delete_nils).to eq({})
|
4
|
-
expect({:a => 1}.delete_nils).to eq({:a => 1})
|
5
|
-
expect({:c => nil}.delete_nils).to eq({})
|
6
|
-
expect({:a => 1, :b => [], :c => nil}.delete_nils).to eq({:a => 1, :b => []})
|
7
|
-
end
|
8
|
-
|
9
|
-
it "#delete_blanks" do
|
10
|
-
expect({}.delete_blanks).to eq({})
|
11
|
-
expect({:a => 1}.delete_blanks).to eq({:a => 1})
|
12
|
-
expect({:c => nil}.delete_blanks).to eq({})
|
13
|
-
expect({:a => 1, :b => [], :c => nil}.delete_blanks).to eq({:a => 1})
|
14
|
-
end
|
15
|
-
end
|