lazier 1.0.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.
- data/.gitignore +6 -0
- data/.travis.yml +8 -0
- data/.yardopts +1 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +82 -0
- data/README.md +33 -0
- data/Rakefile +18 -0
- data/doc/Lazier.html +557 -0
- data/doc/Lazier/Boolean.html +297 -0
- data/doc/Lazier/DateTime.html +787 -0
- data/doc/Lazier/DateTime/ClassMethods.html +1592 -0
- data/doc/Lazier/Exceptions.html +125 -0
- data/doc/Lazier/Exceptions/Dump.html +133 -0
- data/doc/Lazier/Hash.html +393 -0
- data/doc/Lazier/Math.html +130 -0
- data/doc/Lazier/Math/ClassMethods.html +362 -0
- data/doc/Lazier/Object.html +1565 -0
- data/doc/Lazier/Pathname.html +225 -0
- data/doc/Lazier/Settings.html +1249 -0
- data/doc/Lazier/String.html +471 -0
- data/doc/Lazier/TimeZone.html +1675 -0
- data/doc/Lazier/TimeZone/ClassMethods.html +1055 -0
- data/doc/Lazier/Version.html +189 -0
- data/doc/_index.html +306 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +107 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +107 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +652 -0
- data/doc/top-level-namespace.html +112 -0
- data/lazier.gemspec +36 -0
- data/lib/lazier.rb +127 -0
- data/lib/lazier/boolean.rb +26 -0
- data/lib/lazier/datetime.rb +548 -0
- data/lib/lazier/exceptions.rb +14 -0
- data/lib/lazier/hash.rb +40 -0
- data/lib/lazier/math.rb +47 -0
- data/lib/lazier/object.rb +163 -0
- data/lib/lazier/pathname.rb +26 -0
- data/lib/lazier/settings.rb +118 -0
- data/lib/lazier/string.rb +54 -0
- data/lib/lazier/version.rb +24 -0
- data/spec/coverage_helper.rb +19 -0
- data/spec/cowtech-extensions/boolean_spec.rb +30 -0
- data/spec/cowtech-extensions/datetime_spec.rb +352 -0
- data/spec/cowtech-extensions/hash_spec.rb +30 -0
- data/spec/cowtech-extensions/math_spec.rb +41 -0
- data/spec/cowtech-extensions/object_spec.rb +231 -0
- data/spec/cowtech-extensions/pathname_spec.rb +21 -0
- data/spec/cowtech-extensions/settings_spec.rb +118 -0
- data/spec/cowtech-extensions/string_spec.rb +45 -0
- data/spec/lazier_spec.rb +57 -0
- data/spec/spec_helper.rb +16 -0
- metadata +292 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the lazier gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Lazier::Math do
|
10
|
+
let(:first) { 1 }
|
11
|
+
let(:second) { 2 }
|
12
|
+
let(:third) { 0 }
|
13
|
+
|
14
|
+
before(:all) do
|
15
|
+
::Lazier.load!
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "::min" do
|
19
|
+
it "should return the minimum argument" do
|
20
|
+
expect(::Math.min(first)).to eq(first)
|
21
|
+
expect(::Math.min(first, second)).to eq(first)
|
22
|
+
expect(::Math.min([first, [second, third]])).to eq(third)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return nil for an empty array" do
|
26
|
+
expect(::Math.min()).to be_nil
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "::max" do
|
31
|
+
it "should return the maximum argument" do
|
32
|
+
expect(::Math.max(first)).to eq(first)
|
33
|
+
expect(::Math.max(first, second)).to eq(second)
|
34
|
+
expect(::Math.max([first, [second, third]])).to eq(second)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should return nil for an empty array" do
|
38
|
+
expect(::Math.max()).to be_nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,231 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the lazier gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Lazier::Object do
|
10
|
+
before(:all) do
|
11
|
+
::Lazier.load!
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#normalize_number" do
|
15
|
+
it "should correctly sanitize numbers" do
|
16
|
+
expect(123.normalize_number).to eq("123")
|
17
|
+
expect("123.45".normalize_number).to eq("123.45")
|
18
|
+
expect("1,23.45".normalize_number).to eq("123.45")
|
19
|
+
expect("-1.23.45".normalize_number).to eq("-123.45")
|
20
|
+
expect("+123.45".normalize_number).to eq("+123.45")
|
21
|
+
expect("+1.231,45".normalize_number).to eq("+1231.45")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#is_number?" do
|
26
|
+
it "should return true for a valid number" do
|
27
|
+
expect("123.45".is_number?).to be_true
|
28
|
+
expect("1,23.45".is_number?).to be_true
|
29
|
+
expect("-1.23.45".is_number?).to be_true
|
30
|
+
expect("+123.45".is_number?).to be_true
|
31
|
+
expect("+1.231,45".is_number?).to be_true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return true for a invalid number" do
|
35
|
+
expect("s213".is_number?).to be_false
|
36
|
+
expect(nil.is_number?).to be_false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#is_integer?" do
|
41
|
+
it "should return true for a valid number" do
|
42
|
+
expect("123".is_integer?).to be_true
|
43
|
+
expect("-123".is_integer?).to be_true
|
44
|
+
expect("+123".is_integer?).to be_true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return true for a invalid number" do
|
48
|
+
expect("s123".is_integer?).to be_false
|
49
|
+
expect("123.12".is_integer?).to be_false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#is_float?" do
|
54
|
+
it "should return true for a valid number" do
|
55
|
+
expect("123.45".is_float?).to be_true
|
56
|
+
expect("1,23.45".is_float?).to be_true
|
57
|
+
expect("-1.23.45".is_float?).to be_true
|
58
|
+
expect("+123.45".is_float?).to be_true
|
59
|
+
expect("+1.231,45".is_float?).to be_true
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should return true for a invalid number" do
|
63
|
+
expect("s213".is_float?).to be_false
|
64
|
+
expect(nil.is_float?).to be_false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#is_boolean?" do
|
69
|
+
it "should return true for a valid boolean" do
|
70
|
+
expect(true.is_boolean?).to be_true
|
71
|
+
expect(false.is_boolean?).to be_true
|
72
|
+
expect(nil.is_boolean?).to be_true
|
73
|
+
expect("y".is_boolean?).to be_true
|
74
|
+
expect("n".is_boolean?).to be_true
|
75
|
+
expect("yes".is_boolean?).to be_true
|
76
|
+
expect("no".is_boolean?).to be_true
|
77
|
+
expect("1".is_boolean?).to be_true
|
78
|
+
expect("0".is_boolean?).to be_true
|
79
|
+
expect("true".is_boolean?).to be_true
|
80
|
+
expect("false".is_boolean?).to be_true
|
81
|
+
expect("t".is_boolean?).to be_true
|
82
|
+
expect("f".is_boolean?).to be_true
|
83
|
+
expect(1.is_boolean?).to be_true
|
84
|
+
expect(0.is_boolean?).to be_true
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should return true for a invalid boolean" do
|
88
|
+
expect("11".is_boolean?).to be_false
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#ensure_string" do
|
93
|
+
it "should correctly handle strings" do
|
94
|
+
expect(" abc ".ensure_string).to eq(" abc ")
|
95
|
+
1.ensure_string == "1"
|
96
|
+
expect(1.0.ensure_string).to eq("1.0")
|
97
|
+
expect(:abc.ensure_string).to eq("abc")
|
98
|
+
expect(nil.ensure_string).to eq("")
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#to_float" do
|
103
|
+
it "should correctly convert number" do
|
104
|
+
expect(123.45.to_float).to eq(123.45)
|
105
|
+
expect(123.to_float).to eq(123.00)
|
106
|
+
expect("123.45".to_float).to eq(123.45)
|
107
|
+
expect("1,23.45".to_float).to eq(123.45)
|
108
|
+
expect("-1.23.45".to_float).to eq(-123.45)
|
109
|
+
expect("+123.45".to_float).to eq(123.45)
|
110
|
+
expect("+1.231,45".to_float).to eq(1231.45)
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should return 0.0 for a invalid number without a default" do
|
114
|
+
expect("s213".to_float).to eq(0.0)
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should return the default for a invalid number" do
|
118
|
+
expect("s213".to_float(1.0)).to eq(1.0)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe "#to_integer" do
|
123
|
+
it "should correctly convert number" do
|
124
|
+
expect(123.45.to_integer).to eq(123)
|
125
|
+
expect(123.to_integer).to eq(123)
|
126
|
+
expect("+123".to_integer).to eq(123)
|
127
|
+
expect("-123".to_integer).to eq(-123)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should return 0 for a invalid number without a default" do
|
131
|
+
expect("s213".to_integer).to eq(0)
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should return the default for a invalid number" do
|
135
|
+
expect("s213".to_integer(1)).to eq(1)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#to_boolean" do
|
140
|
+
it "should return true for a valid true boolean" do
|
141
|
+
expect(true.to_boolean).to be_true
|
142
|
+
expect("y".to_boolean).to be_true
|
143
|
+
expect("yes".to_boolean).to be_true
|
144
|
+
expect("1".to_boolean).to be_true
|
145
|
+
expect(1.to_boolean).to be_true
|
146
|
+
expect(1.0.to_boolean).to be_true
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should return false for all other values" do
|
150
|
+
expect(false.to_boolean).to be_false
|
151
|
+
expect(nil.to_boolean).to be_false
|
152
|
+
expect("n".to_boolean).to be_false
|
153
|
+
expect("no".to_boolean).to be_false
|
154
|
+
expect("2".to_boolean).to be_false
|
155
|
+
expect(2.0.to_boolean).to be_false
|
156
|
+
expect("false".to_boolean).to be_false
|
157
|
+
expect("abc".to_boolean).to be_false
|
158
|
+
expect(0.to_boolean).to be_false
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
describe "#round_to_precision" do
|
163
|
+
it "should round number" do
|
164
|
+
expect(123.456789.round_to_precision(2)).to eq("123.46")
|
165
|
+
expect(123.456789.round_to_precision(0)).to eq("123")
|
166
|
+
expect("123.456789".round_to_precision(2)).to eq("123.46")
|
167
|
+
end
|
168
|
+
|
169
|
+
it "should return nil for non numeric values" do
|
170
|
+
expect(123.456789.round_to_precision(-1)).to eq(nil)
|
171
|
+
expect("abc".round_to_precision(-1)).to eq(nil)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
describe "#format_number" do
|
176
|
+
it "should format number" do
|
177
|
+
expect(123123.456789.format_number).to eq("123,123.46")
|
178
|
+
expect(123123.456789.format_number(2)).to eq("123,123.46")
|
179
|
+
expect(123123.456789.format_number(3, "@")).to eq("123,123@457")
|
180
|
+
expect(123123.456789.format_number(3, "@", "$")).to eq("123,123@457 $")
|
181
|
+
expect("123123.456789".format_number(3, "@", "$", "!")).to eq("123!123@457 $")
|
182
|
+
|
183
|
+
Lazier.settings.setup_format_number(5, ",", "£", ".")
|
184
|
+
expect(123123.456789.format_number).to eq("123.123,45679 £")
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should return nil for non numeric values" do
|
188
|
+
expect(123.456789.format_number(-1)).to eq(nil)
|
189
|
+
expect("abc".format_number(-1)).to eq(nil)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
describe "#format_boolean" do
|
194
|
+
it "should return the correct string for all values" do
|
195
|
+
expect("yes".format_boolean).to eq("Yes")
|
196
|
+
expect("abc".format_boolean).to eq("No")
|
197
|
+
end
|
198
|
+
|
199
|
+
it "should support localization" do
|
200
|
+
Lazier.settings.setup_boolean_names("YYY", "NNN")
|
201
|
+
expect("yes".format_boolean).to eq("YYY")
|
202
|
+
expect("abc".format_boolean).to eq("NNN")
|
203
|
+
end
|
204
|
+
|
205
|
+
it "should support overrides" do
|
206
|
+
Lazier.settings.setup_boolean_names
|
207
|
+
expect("yes".format_boolean("TTT")).to eq("TTT")
|
208
|
+
expect("yes".format_boolean(nil, "FFF")).to eq("Yes")
|
209
|
+
expect("abc".format_boolean("TTT")).to eq("No")
|
210
|
+
expect("abc".format_boolean(nil, "FFF")).to eq("FFF")
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
describe "#debug_dump" do
|
215
|
+
it "should return the correct representation for an object" do
|
216
|
+
reference = {:a => "b"}
|
217
|
+
expect(reference.debug_dump(:json, false)).to eq(reference.to_json)
|
218
|
+
expect(reference.debug_dump(:pretty_json, false)).to eq(::JSON.pretty_generate(reference))
|
219
|
+
expect(reference.debug_dump(:yaml, false)).to eq(reference.to_yaml)
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should inspect the object if the format is not recognized" do
|
223
|
+
reference = {:a => "b"}
|
224
|
+
expect(reference.debug_dump(:unknown, false)).to eq(reference.inspect)
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should raise an exception if requested" do
|
228
|
+
expect { {:a => "b"}.debug_dump }.to raise_error(::Lazier::Exceptions::Dump)
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the lazier gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Lazier::Pathname do
|
10
|
+
let(:reference) { ::Pathname.new($0) }
|
11
|
+
|
12
|
+
before(:all) do
|
13
|
+
::Lazier.load!
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#components" do
|
17
|
+
it "should return the components of the path" do
|
18
|
+
expect([""] + reference.components).to eq(reference.to_s.split("/"))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the lazier gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Lazier::Settings do
|
10
|
+
let(:reference) { ::Lazier::Settings.instance }
|
11
|
+
let(:number_reference) { 123456.654321 }
|
12
|
+
let(:date_reference) { DateTime.civil(2005, 6, 7, 8, 9, 10, DateTime.rationalize_offset(25200)) }
|
13
|
+
|
14
|
+
before(:all) do
|
15
|
+
Lazier.load!
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#initialize" do
|
19
|
+
it "should create good defaults" do
|
20
|
+
settings = ::Lazier::Settings.new
|
21
|
+
expect(settings.format_number).to be_a(Hash)
|
22
|
+
expect(settings.boolean_names).to be_a(Hash)
|
23
|
+
expect(settings.date_names).to be_a(Hash)
|
24
|
+
expect(settings.date_formats).to be_a(Hash)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should create good defaults for the singleton" do
|
28
|
+
expect(reference.format_number).to be_a(Hash)
|
29
|
+
expect(reference.boolean_names).to be_a(Hash)
|
30
|
+
expect(reference.date_names).to be_a(Hash)
|
31
|
+
expect(reference.date_formats).to be_a(Hash)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "#setup_format_number" do
|
36
|
+
it "should save format numbering options for usage" do
|
37
|
+
reference.setup_format_number(2)
|
38
|
+
expect(number_reference.format_number).to eq("123,456.65")
|
39
|
+
|
40
|
+
reference.setup_format_number(3, "A")
|
41
|
+
expect(number_reference.format_number).to eq("123,456A654")
|
42
|
+
|
43
|
+
reference.setup_format_number(4, "A", "B")
|
44
|
+
expect(number_reference.format_number).to eq("123,456A6543 B")
|
45
|
+
|
46
|
+
reference.setup_format_number(5, "A", "B", "C")
|
47
|
+
expect(number_reference.format_number).to eq("123C456A65432 B")
|
48
|
+
|
49
|
+
reference.setup_format_number
|
50
|
+
expect(number_reference.format_number).to eq("123,456.65")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#setup_boolean_names" do
|
55
|
+
it "should save names for boolean values" do
|
56
|
+
reference.setup_boolean_names("TRUE1")
|
57
|
+
expect([true.format_boolean, false.format_boolean]).to eq(["TRUE1", "No"])
|
58
|
+
|
59
|
+
reference.setup_boolean_names(nil, "FALSE1")
|
60
|
+
expect([true.format_boolean, false.format_boolean]).to eq(["Yes", "FALSE1"])
|
61
|
+
|
62
|
+
reference.setup_boolean_names("TRUE2", "FALSE2")
|
63
|
+
expect([true.format_boolean, false.format_boolean]).to eq(["TRUE2", "FALSE2"])
|
64
|
+
|
65
|
+
reference.setup_boolean_names
|
66
|
+
expect([true.format_boolean, false.format_boolean]).to eq(["Yes", "No"])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#setup_date_formats" do
|
71
|
+
it "should save formats for date formatting" do
|
72
|
+
reference.setup_date_formats(nil, true)
|
73
|
+
|
74
|
+
reference.setup_date_formats({:c1 => "%Y"})
|
75
|
+
expect(date_reference.lstrftime(:ct_date)).to eq(date_reference.strftime("%Y-%m-%d"))
|
76
|
+
expect(date_reference.lstrftime(:c1)).to eq(date_reference.year.to_s)
|
77
|
+
|
78
|
+
reference.setup_date_formats({:c1 => "%Y"}, true)
|
79
|
+
expect(date_reference.lstrftime(:ct_date)).to eq("ct_date")
|
80
|
+
expect(date_reference.lstrftime(:c1)).to eq(date_reference.year.to_s)
|
81
|
+
|
82
|
+
reference.setup_date_formats()
|
83
|
+
expect(date_reference.lstrftime(:ct_date)).to eq(date_reference.strftime("%Y-%m-%d"))
|
84
|
+
expect(date_reference.lstrftime(:c1)).to eq(date_reference.year.to_s)
|
85
|
+
|
86
|
+
reference.setup_date_formats(nil, true)
|
87
|
+
expect(date_reference.lstrftime(:ct_date)).to eq(date_reference.strftime("%Y-%m-%d"))
|
88
|
+
expect(date_reference.lstrftime(:c1)).to eq("c1")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#setup_date_names" do
|
93
|
+
it "should save names for days and months" do
|
94
|
+
reference.setup_date_names
|
95
|
+
reference.setup_date_formats({:sdn => "%B %b %A %a"})
|
96
|
+
|
97
|
+
long_months = 12.times.collect {|i| (i + 1).to_s * 2}
|
98
|
+
short_months = 12.times.collect {|i| (i + 1).to_s}
|
99
|
+
long_days = 7.times.collect {|i| (i + 1).to_s * 2}
|
100
|
+
short_days = 7.times.collect {|i| (i + 1).to_s}
|
101
|
+
|
102
|
+
reference.setup_date_names(long_months)
|
103
|
+
expect(date_reference.lstrftime(:sdn)).to eq("66 Jun Tuesday Tue")
|
104
|
+
|
105
|
+
reference.setup_date_names(long_months, short_months)
|
106
|
+
expect(date_reference.lstrftime(:sdn)).to eq("66 6 Tuesday Tue")
|
107
|
+
|
108
|
+
reference.setup_date_names(long_months, short_months, long_days)
|
109
|
+
expect(date_reference.lstrftime(:sdn)).to eq("66 6 33 Tue")
|
110
|
+
|
111
|
+
reference.setup_date_names(long_months, short_months, long_days, short_days)
|
112
|
+
expect(date_reference.lstrftime(:sdn)).to eq("66 6 33 3")
|
113
|
+
|
114
|
+
reference.setup_date_names
|
115
|
+
expect(date_reference.lstrftime(:sdn)).to eq("June Jun Tuesday Tue")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the lazier gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Lazier::String do
|
10
|
+
let(:reference) { "abc òùà èé &gt;" }
|
11
|
+
let(:translated_reference) { "abc oua ee &gt;" }
|
12
|
+
let(:untitleized_reference) { "abc-òùà-èé-&gt;" }
|
13
|
+
let(:amp_reference) { "abc òùà èé >" }
|
14
|
+
|
15
|
+
before(:all) do
|
16
|
+
::Lazier.load!
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#remove_accents" do
|
20
|
+
it "should translate accents" do
|
21
|
+
expect(reference.remove_accents).to eq(translated_reference)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#untitleize" do
|
26
|
+
it "should convert spaces to dashes" do
|
27
|
+
expect(reference.untitleize).to eq(untitleized_reference)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#replace_ampersands" do
|
32
|
+
it "should remove HTML ampersands" do
|
33
|
+
expect(reference.replace_ampersands).to eq(amp_reference)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#value" do
|
38
|
+
it "should return the string itself" do
|
39
|
+
expect(reference.value).to eq(reference)
|
40
|
+
expect(translated_reference.value).to eq(translated_reference)
|
41
|
+
expect(untitleized_reference.value).to eq(untitleized_reference)
|
42
|
+
expect(amp_reference.value).to eq(amp_reference)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|