gorillib 0.0.7 → 0.0.8
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 +49 -0
- data/.rspec +2 -0
- data/CHANGELOG.textile +49 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +36 -0
- data/README.textile +6 -1
- data/Rakefile +42 -9
- data/VERSION +1 -1
- data/gorillib.gemspec +110 -73
- data/lib/gorillib/array/deep_compact.rb +3 -12
- data/lib/gorillib/datetime/#flat.rb# +30 -0
- data/lib/gorillib/datetime/flat.rb +2 -10
- data/lib/gorillib/datetime/parse.rb +3 -1
- data/lib/gorillib/enumerable/sum.rb +37 -35
- data/lib/gorillib/hash/deep_compact.rb +3 -13
- data/lib/gorillib/logger/log.rb +1 -1
- data/lib/gorillib/numeric/clamp.rb +9 -0
- data/lib/gorillib/object/try.rb +10 -0
- data/lib/gorillib/object/try_dup.rb +44 -0
- data/lib/gorillib/string/human.rb +1 -3
- data/lib/gorillib/string/truncate.rb +2 -2
- data/spec/array/compact_blank_spec.rb +37 -0
- data/spec/array/extract_options_spec.rb +47 -0
- data/spec/datetime/flat_spec.rb +38 -0
- data/spec/datetime/parse_spec.rb +48 -0
- data/spec/enumerable/sum_spec.rb +56 -0
- data/spec/hash/compact_spec.rb +70 -0
- data/spec/hash/deep_compact_spec.rb +37 -0
- data/spec/hash/deep_merge_spec.rb +117 -0
- data/spec/hash/keys_spec.rb +111 -0
- data/spec/hash/reverse_merge_spec.rb +25 -0
- data/spec/hash/slice_spec.rb +43 -0
- data/spec/hash/zip_spec.rb +31 -0
- data/spec/logger/log_spec.rb +31 -0
- data/spec/metaprogramming/aliasing_spec.rb +177 -0
- data/spec/metaprogramming/cattr_accessor_spec.rb +41 -0
- data/spec/metaprogramming/class_attribute_spec.rb +75 -0
- data/spec/metaprogramming/delegation_spec.rb +166 -0
- data/spec/metaprogramming/mattr_accessor_spec.rb +44 -0
- data/spec/metaprogramming/singleton_class_spec.rb +9 -0
- data/spec/{numeric_spec.rb → numeric/clamp_spec.rb} +2 -2
- data/spec/object/blank_spec.rb +93 -0
- data/spec/object/try_dup_spec.rb +47 -0
- data/spec/object/try_spec.rb +20 -0
- data/spec/spec_helper.rb +13 -8
- data/spec/string/constantize_spec.rb +56 -0
- data/spec/string/human_spec.rb +66 -0
- data/spec/string/inflections_spec.rb +74 -0
- data/{test → spec}/string/inflector_test_cases.rb +0 -0
- data/spec/string/truncate_spec.rb +42 -0
- data/spec/support/kcode_test_helper.rb +16 -0
- metadata +209 -96
- data/.document +0 -5
- data/fiddle/hubahuba.rb +0 -62
- data/spec/blank_spec.rb +0 -86
- data/spec/deep_compact_spec.rb +0 -36
- data/spec/gorillib_spec.rb +0 -7
- data/spec/rcov.opts +0 -6
- data/spec/spec.opts +0 -4
- data/spec/spec_tasks.rake +0 -15
- data/test/abstract_unit.rb +0 -25
- data/test/array/compact_blank_test.rb +0 -33
- data/test/array/extract_options_test.rb +0 -39
- data/test/datetime/flat_test.rb +0 -0
- data/test/datetime/parse_test.rb +0 -0
- data/test/enumerable/sum_test.rb +0 -50
- data/test/hash/compact_test.rb +0 -38
- data/test/hash/deep_merge_test.rb +0 -30
- data/test/hash/keys_test.rb +0 -110
- data/test/hash/reverse_merge_test.rb +0 -20
- data/test/hash/slice_test.rb +0 -47
- data/test/hash/zip_test.rb +0 -0
- data/test/logger/log_test.rb +0 -0
- data/test/metaprogramming/aliasing_test.rb +0 -188
- data/test/metaprogramming/cattr_accessor_test.rb +0 -38
- data/test/metaprogramming/class_attribute_test.rb +0 -73
- data/test/metaprogramming/delegation_test.rb +0 -166
- data/test/metaprogramming/mattr_accessor_test.rb +0 -40
- data/test/metaprogramming/singleton_class_test.rb +0 -9
- data/test/object/blank_test.rb +0 -22
- data/test/string/constantize_test.rb +0 -30
- data/test/string/human_test.rb +0 -65
- data/test/string/inflections_test.rb +0 -57
- data/test/string/truncate_test.rb +0 -37
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorillib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 7
|
10
|
-
version: 0.0.7
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.8
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Infochimps
|
@@ -15,55 +10,174 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-20 00:00:00 -05:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
23
|
-
prerelease: false
|
17
|
+
name: bundler
|
24
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
19
|
none: false
|
26
20
|
requirements:
|
27
21
|
- - ~>
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 6
|
33
|
-
- 0
|
34
|
-
version: 0.6.0
|
23
|
+
version: 1.0.12
|
35
24
|
type: :development
|
25
|
+
prerelease: false
|
36
26
|
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.6.7
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *id002
|
37
38
|
- !ruby/object:Gem::Dependency
|
38
39
|
name: jeweler
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.5.2
|
46
|
+
type: :development
|
39
47
|
prerelease: false
|
40
|
-
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rspec
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 2.5.0
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: spork
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.9.0.rc5
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: RedCloth
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rcov
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.9
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *id007
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: watchr
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: "0"
|
101
|
+
type: :development
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: *id008
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: bundler
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 1.0.12
|
112
|
+
type: :development
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: *id009
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: yard
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 0.6.7
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: *id010
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: jeweler
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
41
129
|
none: false
|
42
130
|
requirements:
|
43
131
|
- - ~>
|
44
132
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 7
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 5
|
49
|
-
- 2
|
50
133
|
version: 1.5.2
|
51
134
|
type: :development
|
52
|
-
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: *id011
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: rspec
|
139
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ~>
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 2.5.0
|
145
|
+
type: :development
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: *id012
|
53
148
|
- !ruby/object:Gem::Dependency
|
54
149
|
name: rcov
|
150
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 0.9.9
|
156
|
+
type: :development
|
55
157
|
prerelease: false
|
56
|
-
|
158
|
+
version_requirements: *id013
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: spork
|
161
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ~>
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.9.0.rc5
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: *id014
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: watchr
|
172
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
57
173
|
none: false
|
58
174
|
requirements:
|
59
175
|
- - ">="
|
60
176
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 3
|
62
|
-
segments:
|
63
|
-
- 0
|
64
177
|
version: "0"
|
65
178
|
type: :development
|
66
|
-
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: *id015
|
67
181
|
description: "Gorillib: infochimps lightweight subset of ruby convenience methods"
|
68
182
|
email: coders@infochimps.org
|
69
183
|
executables: []
|
@@ -74,19 +188,22 @@ extra_rdoc_files:
|
|
74
188
|
- LICENSE.textile
|
75
189
|
- README.textile
|
76
190
|
files:
|
77
|
-
- .
|
191
|
+
- .gitignore
|
78
192
|
- .rspec
|
193
|
+
- CHANGELOG.textile
|
194
|
+
- Gemfile
|
195
|
+
- Gemfile.lock
|
79
196
|
- LICENSE.textile
|
80
197
|
- README.textile
|
81
198
|
- Rakefile
|
82
199
|
- VERSION
|
83
|
-
- fiddle/hubahuba.rb
|
84
200
|
- gorillib.gemspec
|
85
201
|
- lib/gorillib.rb
|
86
202
|
- lib/gorillib/array/compact_blank.rb
|
87
203
|
- lib/gorillib/array/deep_compact.rb
|
88
204
|
- lib/gorillib/array/extract_options.rb
|
89
205
|
- lib/gorillib/base.rb
|
206
|
+
- lib/gorillib/datetime/#flat.rb#
|
90
207
|
- lib/gorillib/datetime/flat.rb
|
91
208
|
- lib/gorillib/datetime/parse.rb
|
92
209
|
- lib/gorillib/enumerable/sum.rb
|
@@ -107,44 +224,43 @@ files:
|
|
107
224
|
- lib/gorillib/metaprogramming/singleton_class.rb
|
108
225
|
- lib/gorillib/numeric/clamp.rb
|
109
226
|
- lib/gorillib/object/blank.rb
|
227
|
+
- lib/gorillib/object/try.rb
|
228
|
+
- lib/gorillib/object/try_dup.rb
|
110
229
|
- lib/gorillib/some.rb
|
111
230
|
- lib/gorillib/string/constantize.rb
|
112
231
|
- lib/gorillib/string/human.rb
|
113
232
|
- lib/gorillib/string/inflections.rb
|
114
233
|
- lib/gorillib/string/truncate.rb
|
115
|
-
- spec/
|
116
|
-
- spec/
|
117
|
-
- spec/
|
118
|
-
- spec/
|
119
|
-
- spec/
|
120
|
-
- spec/
|
234
|
+
- spec/array/compact_blank_spec.rb
|
235
|
+
- spec/array/extract_options_spec.rb
|
236
|
+
- spec/datetime/flat_spec.rb
|
237
|
+
- spec/datetime/parse_spec.rb
|
238
|
+
- spec/enumerable/sum_spec.rb
|
239
|
+
- spec/hash/compact_spec.rb
|
240
|
+
- spec/hash/deep_compact_spec.rb
|
241
|
+
- spec/hash/deep_merge_spec.rb
|
242
|
+
- spec/hash/keys_spec.rb
|
243
|
+
- spec/hash/reverse_merge_spec.rb
|
244
|
+
- spec/hash/slice_spec.rb
|
245
|
+
- spec/hash/zip_spec.rb
|
246
|
+
- spec/logger/log_spec.rb
|
247
|
+
- spec/metaprogramming/aliasing_spec.rb
|
248
|
+
- spec/metaprogramming/cattr_accessor_spec.rb
|
249
|
+
- spec/metaprogramming/class_attribute_spec.rb
|
250
|
+
- spec/metaprogramming/delegation_spec.rb
|
251
|
+
- spec/metaprogramming/mattr_accessor_spec.rb
|
252
|
+
- spec/metaprogramming/singleton_class_spec.rb
|
253
|
+
- spec/numeric/clamp_spec.rb
|
254
|
+
- spec/object/blank_spec.rb
|
255
|
+
- spec/object/try_dup_spec.rb
|
256
|
+
- spec/object/try_spec.rb
|
121
257
|
- spec/spec_helper.rb
|
122
|
-
- spec/
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
- test/enumerable/sum_test.rb
|
129
|
-
- test/hash/compact_test.rb
|
130
|
-
- test/hash/deep_merge_test.rb
|
131
|
-
- test/hash/keys_test.rb
|
132
|
-
- test/hash/reverse_merge_test.rb
|
133
|
-
- test/hash/slice_test.rb
|
134
|
-
- test/hash/zip_test.rb
|
135
|
-
- test/logger/log_test.rb
|
136
|
-
- test/metaprogramming/aliasing_test.rb
|
137
|
-
- test/metaprogramming/cattr_accessor_test.rb
|
138
|
-
- test/metaprogramming/class_attribute_test.rb
|
139
|
-
- test/metaprogramming/delegation_test.rb
|
140
|
-
- test/metaprogramming/mattr_accessor_test.rb
|
141
|
-
- test/metaprogramming/singleton_class_test.rb
|
142
|
-
- test/object/blank_test.rb
|
143
|
-
- test/string/constantize_test.rb
|
144
|
-
- test/string/human_test.rb
|
145
|
-
- test/string/inflections_test.rb
|
146
|
-
- test/string/inflector_test_cases.rb
|
147
|
-
- test/string/truncate_test.rb
|
258
|
+
- spec/string/constantize_spec.rb
|
259
|
+
- spec/string/human_spec.rb
|
260
|
+
- spec/string/inflections_spec.rb
|
261
|
+
- spec/string/inflector_test_cases.rb
|
262
|
+
- spec/string/truncate_spec.rb
|
263
|
+
- spec/support/kcode_test_helper.rb
|
148
264
|
has_rdoc: true
|
149
265
|
homepage: http://infochimps.com/labs
|
150
266
|
licenses:
|
@@ -159,7 +275,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
275
|
requirements:
|
160
276
|
- - ">="
|
161
277
|
- !ruby/object:Gem::Version
|
162
|
-
hash:
|
278
|
+
hash: 991802759410469185
|
163
279
|
segments:
|
164
280
|
- 0
|
165
281
|
version: "0"
|
@@ -168,45 +284,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
284
|
requirements:
|
169
285
|
- - ">="
|
170
286
|
- !ruby/object:Gem::Version
|
171
|
-
hash: 3
|
172
|
-
segments:
|
173
|
-
- 0
|
174
287
|
version: "0"
|
175
288
|
requirements: []
|
176
289
|
|
177
290
|
rubyforge_project:
|
178
|
-
rubygems_version: 1.
|
291
|
+
rubygems_version: 1.5.0
|
179
292
|
signing_key:
|
180
293
|
specification_version: 3
|
181
294
|
summary: include only what you need. No dependencies, no creep
|
182
295
|
test_files:
|
183
|
-
- spec/
|
184
|
-
- spec/
|
185
|
-
- spec/
|
186
|
-
- spec/
|
296
|
+
- spec/array/compact_blank_spec.rb
|
297
|
+
- spec/array/extract_options_spec.rb
|
298
|
+
- spec/datetime/flat_spec.rb
|
299
|
+
- spec/datetime/parse_spec.rb
|
300
|
+
- spec/enumerable/sum_spec.rb
|
301
|
+
- spec/hash/compact_spec.rb
|
302
|
+
- spec/hash/deep_compact_spec.rb
|
303
|
+
- spec/hash/deep_merge_spec.rb
|
304
|
+
- spec/hash/keys_spec.rb
|
305
|
+
- spec/hash/reverse_merge_spec.rb
|
306
|
+
- spec/hash/slice_spec.rb
|
307
|
+
- spec/hash/zip_spec.rb
|
308
|
+
- spec/logger/log_spec.rb
|
309
|
+
- spec/metaprogramming/aliasing_spec.rb
|
310
|
+
- spec/metaprogramming/cattr_accessor_spec.rb
|
311
|
+
- spec/metaprogramming/class_attribute_spec.rb
|
312
|
+
- spec/metaprogramming/delegation_spec.rb
|
313
|
+
- spec/metaprogramming/mattr_accessor_spec.rb
|
314
|
+
- spec/metaprogramming/singleton_class_spec.rb
|
315
|
+
- spec/numeric/clamp_spec.rb
|
316
|
+
- spec/object/blank_spec.rb
|
317
|
+
- spec/object/try_dup_spec.rb
|
318
|
+
- spec/object/try_spec.rb
|
187
319
|
- spec/spec_helper.rb
|
188
|
-
-
|
189
|
-
-
|
190
|
-
-
|
191
|
-
-
|
192
|
-
-
|
193
|
-
-
|
194
|
-
- test/hash/compact_test.rb
|
195
|
-
- test/hash/deep_merge_test.rb
|
196
|
-
- test/hash/keys_test.rb
|
197
|
-
- test/hash/reverse_merge_test.rb
|
198
|
-
- test/hash/slice_test.rb
|
199
|
-
- test/hash/zip_test.rb
|
200
|
-
- test/logger/log_test.rb
|
201
|
-
- test/metaprogramming/aliasing_test.rb
|
202
|
-
- test/metaprogramming/cattr_accessor_test.rb
|
203
|
-
- test/metaprogramming/class_attribute_test.rb
|
204
|
-
- test/metaprogramming/delegation_test.rb
|
205
|
-
- test/metaprogramming/mattr_accessor_test.rb
|
206
|
-
- test/metaprogramming/singleton_class_test.rb
|
207
|
-
- test/object/blank_test.rb
|
208
|
-
- test/string/constantize_test.rb
|
209
|
-
- test/string/human_test.rb
|
210
|
-
- test/string/inflections_test.rb
|
211
|
-
- test/string/inflector_test_cases.rb
|
212
|
-
- test/string/truncate_test.rb
|
320
|
+
- spec/string/constantize_spec.rb
|
321
|
+
- spec/string/human_spec.rb
|
322
|
+
- spec/string/inflections_spec.rb
|
323
|
+
- spec/string/inflector_test_cases.rb
|
324
|
+
- spec/string/truncate_spec.rb
|
325
|
+
- spec/support/kcode_test_helper.rb
|
data/.document
DELETED
data/fiddle/hubahuba.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
|
2
|
-
module Enumerable
|
3
|
-
def map_with_index
|
4
|
-
result = []
|
5
|
-
self.each_with_index do |elt, idx|
|
6
|
-
result << yield(elt, idx)
|
7
|
-
end
|
8
|
-
result
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
https://github.com/github/hubahuba/tree/master/lib
|
13
|
-
|
14
|
-
|
15
|
-
class Object
|
16
|
-
# Metaid == a few simple metaclass helper
|
17
|
-
# (See http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html.)
|
18
|
-
# The hidden singleton lurks behind everyone
|
19
|
-
def metaclass() class << self; self end end
|
20
|
-
def meta_eval(&blk) metaclass.instance_eval(&blk) end
|
21
|
-
|
22
|
-
# Adds methods to a metaclass
|
23
|
-
def meta_def(name, &blk)
|
24
|
-
meta_eval { define_method(name, &blk) }
|
25
|
-
end
|
26
|
-
|
27
|
-
# Defines an instance method within a class
|
28
|
-
def class_def(name, &blk)
|
29
|
-
class_eval { define_method(name, &blk) }
|
30
|
-
end
|
31
|
-
|
32
|
-
##
|
33
|
-
# if ''.not.blank?
|
34
|
-
# http://blog.jayfields.com/2007/08/ruby-adding-not-method-for-readability.html
|
35
|
-
define_method :not do
|
36
|
-
Not.new(self)
|
37
|
-
end
|
38
|
-
|
39
|
-
class Not
|
40
|
-
private *instance_methods.select { |m| m !~ /(^__|^\W|^binding$)/ }
|
41
|
-
|
42
|
-
def initialize(subject)
|
43
|
-
@subject = subject
|
44
|
-
end
|
45
|
-
|
46
|
-
def method_missing(sym, *args, &blk)
|
47
|
-
!@subject.send(sym,*args,&blk)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
##
|
52
|
-
# @person ? @person.name : nil
|
53
|
-
# vs
|
54
|
-
# @person.try(:name)
|
55
|
-
def try(method)
|
56
|
-
send method if respond_to? method
|
57
|
-
end
|
58
|
-
|
59
|
-
def class_attr_accessor(*attrs)
|
60
|
-
metaclass.send(:attr_accessor, *attrs)
|
61
|
-
end
|
62
|
-
end
|
data/spec/blank_spec.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'gorillib/object/blank'
|
3
|
-
|
4
|
-
describe Object do
|
5
|
-
it 'should provide blank?' do
|
6
|
-
Object.new.should respond_to(:blank?)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'should be blank if it is nil' do
|
10
|
-
object = Object.new
|
11
|
-
class << object
|
12
|
-
def nil?; true end
|
13
|
-
end
|
14
|
-
object.should be_blank
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should be blank if it is empty' do
|
18
|
-
{}.should be_blank
|
19
|
-
[].should be_blank
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'should not be blank if not nil or empty' do
|
23
|
-
Object.new.should_not be_blank
|
24
|
-
[nil].should_not be_blank
|
25
|
-
{ nil => 0 }.should_not be_blank
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe Numeric do
|
30
|
-
it 'should provide blank?' do
|
31
|
-
1.should respond_to(:blank?)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should never be blank' do
|
35
|
-
1.should_not be_blank
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe NilClass do
|
40
|
-
it 'should provide blank?' do
|
41
|
-
nil.should respond_to(:blank?)
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'should always be blank' do
|
45
|
-
nil.should be_blank
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe TrueClass do
|
50
|
-
it 'should provide blank?' do
|
51
|
-
true.should respond_to(:blank?)
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'should never be blank' do
|
55
|
-
true.should_not be_blank
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe FalseClass do
|
60
|
-
it 'should provide blank?' do
|
61
|
-
false.should respond_to(:blank?)
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'should always be blank' do
|
65
|
-
false.should be_blank
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe String do
|
70
|
-
it 'should provide blank?' do
|
71
|
-
'string'.should respond_to(:blank?)
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'should be blank if empty' do
|
75
|
-
''.should be_blank
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'should be blank if it only contains whitespace' do
|
79
|
-
' '.should be_blank
|
80
|
-
" \r \n \t ".should be_blank
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'should not be blank if it contains non-whitespace' do
|
84
|
-
' a '.should_not be_blank
|
85
|
-
end
|
86
|
-
end
|
data/spec/deep_compact_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'gorillib/hash/deep_compact'
|
3
|
-
require 'gorillib/array/deep_compact'
|
4
|
-
|
5
|
-
describe Hash do
|
6
|
-
|
7
|
-
it "should respond to the method deep_compact!" do
|
8
|
-
{ }.should respond_to :deep_compact!
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should return nil if all values evaluate as blank" do
|
12
|
-
{ :a=>nil, :b=>"", :c=>[] }.deep_compact!.should be nil
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should return a hash with all blank values removed recursively" do
|
16
|
-
@test_hash = {:e=>["",nil,[],{},"foo",{:a=>[nil,{:c=>["","",[]]}],:b=>nil }]}
|
17
|
-
@test_hash.deep_compact!.should == {:e=>["foo"]}
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
describe Array do
|
23
|
-
|
24
|
-
it "should respond to the method deep_compact!" do
|
25
|
-
[ ].should respond_to :deep_compact!
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should return nil if all values evaluate as blank" do
|
29
|
-
[nil, '', { }].deep_compact!.should be nil
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should return a hash with all blank values removed recursively" do
|
33
|
-
@test_hash = ["",nil,[],{},"foo",{:a=>[nil,{:c=>["","",[]]}],:b=>nil }]
|
34
|
-
@test_hash.deep_compact!.should == ["foo"]
|
35
|
-
end
|
36
|
-
end
|
data/spec/gorillib_spec.rb
DELETED
data/spec/rcov.opts
DELETED
data/spec/spec.opts
DELETED
data/spec/spec_tasks.rake
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
require 'rspec/core'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
-
spec.pattern = FileList['spec/**/*_spec.rb']
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
11
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
12
|
-
spec.rcov = true
|
13
|
-
end
|
14
|
-
|
15
|
-
task :default => :spec
|
data/test/abstract_unit.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
ORIG_ARGV = ARGV.dup
|
2
|
-
|
3
|
-
curr = File.expand_path(File.dirname(__FILE__))
|
4
|
-
$:.unshift(curr) unless $:.include?('curr') || $:.include?(curr)
|
5
|
-
lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
|
6
|
-
$:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)
|
7
|
-
|
8
|
-
require 'test/unit'
|
9
|
-
|
10
|
-
def with_kcode(code)
|
11
|
-
if RUBY_VERSION < '1.9'
|
12
|
-
begin
|
13
|
-
old_kcode, $KCODE = $KCODE, code
|
14
|
-
yield
|
15
|
-
ensure
|
16
|
-
$KCODE = old_kcode
|
17
|
-
end
|
18
|
-
else
|
19
|
-
yield
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
if RUBY_VERSION < '1.9'
|
24
|
-
$KCODE = 'UTF8'
|
25
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__)+'/../abstract_unit'
|
2
|
-
require 'gorillib/array/compact_blank'
|
3
|
-
|
4
|
-
class ArrayCompactBlankTests < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def test_compact_blank_with_empty
|
7
|
-
[ [nil], [nil, false, {}, ""] ].each do |arr|
|
8
|
-
assert_equal([], arr.compact_blank)
|
9
|
-
assert_not_equal(0, arr.length)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_compact_blank_bang_with_empty
|
14
|
-
assert_equal([], [].compact_blank!)
|
15
|
-
#
|
16
|
-
[ [nil], [nil, false, {}, ""] ].each do |arr|
|
17
|
-
assert_equal([], arr.compact_blank!)
|
18
|
-
assert_equal(0, arr.length)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_compact_blank_with_full
|
23
|
-
[ [nil, 1, nil, 2], [nil, 1, false, 2, {}, ""] ].each do |arr|
|
24
|
-
assert_equal([1, 2], arr.compact_blank)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_compact_blank_bang_with_full
|
29
|
-
[ [nil, 1, nil, 2], [nil, 1, false, 2, {}, ""] ].each do |arr|
|
30
|
-
assert_equal([1, 2], arr.compact_blank!)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|