agile_utils 0.2.1 → 0.2.2
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/CHANGELOG.md +6 -0
- data/agile_utils.gemspec +13 -12
- data/lib/agile_utils.rb +7 -2
- data/lib/agile_utils/version.rb +1 -1
- metadata +114 -72
- checksums.yaml +0 -7
- data/lib/agile_utils/core_ext/blank_ext.rb +0 -109
- data/lib/agile_utils/core_ext/hash_ext.rb +0 -58
data/CHANGELOG.md
CHANGED
data/agile_utils.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.description = %q(My collection of library that I have used that can be shared across multiple projects)
|
12
12
|
spec.homepage = "https://github.com/agilecreativity/agile_utils"
|
13
13
|
spec.license = "MIT"
|
14
|
-
spec.required_ruby_version = ">=
|
14
|
+
spec.required_ruby_version = ">= 1.9.3"
|
15
15
|
spec.files = Dir.glob("{bin,lib}/**/*") + %w[Gemfile
|
16
16
|
Rakefile
|
17
17
|
agile_utils.gemspec
|
@@ -23,17 +23,18 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
24
24
|
spec.test_files = Dir.glob("{test}/**/*")
|
25
25
|
spec.require_paths = ["lib"]
|
26
|
-
spec.add_runtime_dependency "thor", "~> 0.19"
|
26
|
+
spec.add_runtime_dependency "thor", "~> 0.19.1"
|
27
27
|
spec.add_runtime_dependency "minitar", "~> 0.5.4"
|
28
|
-
spec.
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "
|
28
|
+
spec.add_runtime_dependency "activesupport-core-ext", "~> 4.0.0.2"
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.7.0"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.3.2"
|
31
|
+
spec.add_development_dependency "awesome_print", "~> 1.2.0"
|
31
32
|
spec.add_development_dependency "minitest-spec-context", "~> 0.0.3"
|
32
|
-
spec.add_development_dependency "guard-minitest", "~> 2.
|
33
|
-
spec.add_development_dependency "minitest", "~> 5.
|
34
|
-
spec.add_development_dependency "guard", "~> 2.6"
|
35
|
-
spec.add_development_dependency "pry", "~> 0.
|
36
|
-
spec.add_development_dependency "gem-ctags", "~> 1.0"
|
37
|
-
spec.add_development_dependency "yard", "~> 0.8"
|
38
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
33
|
+
spec.add_development_dependency "guard-minitest", "~> 2.3.1"
|
34
|
+
spec.add_development_dependency "minitest", "~> 5.4.0"
|
35
|
+
spec.add_development_dependency "guard", "~> 2.6.1"
|
36
|
+
spec.add_development_dependency "pry", "~> 0.10.0"
|
37
|
+
spec.add_development_dependency "gem-ctags", "~> 1.0.6"
|
38
|
+
spec.add_development_dependency "yard", "~> 0.8.7"
|
39
|
+
spec.add_development_dependency "rubocop", "~> 0.24.1"
|
39
40
|
end
|
data/lib/agile_utils.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
# Make use of core_extension (don't invent the wheel)
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_support/core_ext/object/blank'
|
4
|
+
require 'active_support/core_ext/hash/keys'
|
5
|
+
require 'active_support/core_ext/hash/indifferent_access'
|
6
|
+
require 'active_support/core_ext/kernel/reporting'
|
7
|
+
|
1
8
|
require_relative "./agile_utils/version"
|
2
|
-
require_relative "./agile_utils/core_ext/blank_ext"
|
3
|
-
require_relative "./agile_utils/core_ext/hash_ext"
|
4
9
|
require_relative "./agile_utils/cli"
|
5
10
|
require_relative "./agile_utils/helper"
|
6
11
|
require_relative "./agile_utils/file_util"
|
data/lib/agile_utils/version.rb
CHANGED
metadata
CHANGED
@@ -1,197 +1,240 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agile_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Burin Choomnuan
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-08-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: thor
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
21
|
+
version: 0.19.1
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 0.19.1
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: minitar
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: 0.5.4
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: 0.5.4
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: activesupport-core-ext
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 4.0.0.2
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 4.0.0.2
|
41
62
|
- !ruby/object:Gem::Dependency
|
42
63
|
name: bundler
|
43
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
44
66
|
requirements:
|
45
|
-
- -
|
67
|
+
- - ~>
|
46
68
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
69
|
+
version: 1.7.0
|
48
70
|
type: :development
|
49
71
|
prerelease: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
51
74
|
requirements:
|
52
|
-
- -
|
75
|
+
- - ~>
|
53
76
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
77
|
+
version: 1.7.0
|
55
78
|
- !ruby/object:Gem::Dependency
|
56
79
|
name: rake
|
57
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
58
82
|
requirements:
|
59
|
-
- -
|
83
|
+
- - ~>
|
60
84
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
85
|
+
version: 10.3.2
|
62
86
|
type: :development
|
63
87
|
prerelease: false
|
64
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
65
90
|
requirements:
|
66
|
-
- -
|
91
|
+
- - ~>
|
67
92
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
93
|
+
version: 10.3.2
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: awesome_print
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
72
98
|
requirements:
|
73
|
-
- -
|
99
|
+
- - ~>
|
74
100
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
101
|
+
version: 1.2.0
|
76
102
|
type: :development
|
77
103
|
prerelease: false
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
79
106
|
requirements:
|
80
|
-
- -
|
107
|
+
- - ~>
|
81
108
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
109
|
+
version: 1.2.0
|
83
110
|
- !ruby/object:Gem::Dependency
|
84
111
|
name: minitest-spec-context
|
85
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
86
114
|
requirements:
|
87
|
-
- -
|
115
|
+
- - ~>
|
88
116
|
- !ruby/object:Gem::Version
|
89
117
|
version: 0.0.3
|
90
118
|
type: :development
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
93
122
|
requirements:
|
94
|
-
- -
|
123
|
+
- - ~>
|
95
124
|
- !ruby/object:Gem::Version
|
96
125
|
version: 0.0.3
|
97
126
|
- !ruby/object:Gem::Dependency
|
98
127
|
name: guard-minitest
|
99
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
100
130
|
requirements:
|
101
|
-
- -
|
131
|
+
- - ~>
|
102
132
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
133
|
+
version: 2.3.1
|
104
134
|
type: :development
|
105
135
|
prerelease: false
|
106
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
107
138
|
requirements:
|
108
|
-
- -
|
139
|
+
- - ~>
|
109
140
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
141
|
+
version: 2.3.1
|
111
142
|
- !ruby/object:Gem::Dependency
|
112
143
|
name: minitest
|
113
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
114
146
|
requirements:
|
115
|
-
- -
|
147
|
+
- - ~>
|
116
148
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
149
|
+
version: 5.4.0
|
118
150
|
type: :development
|
119
151
|
prerelease: false
|
120
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
121
154
|
requirements:
|
122
|
-
- -
|
155
|
+
- - ~>
|
123
156
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
157
|
+
version: 5.4.0
|
125
158
|
- !ruby/object:Gem::Dependency
|
126
159
|
name: guard
|
127
160
|
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
128
162
|
requirements:
|
129
|
-
- -
|
163
|
+
- - ~>
|
130
164
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
165
|
+
version: 2.6.1
|
132
166
|
type: :development
|
133
167
|
prerelease: false
|
134
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
135
170
|
requirements:
|
136
|
-
- -
|
171
|
+
- - ~>
|
137
172
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
173
|
+
version: 2.6.1
|
139
174
|
- !ruby/object:Gem::Dependency
|
140
175
|
name: pry
|
141
176
|
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
142
178
|
requirements:
|
143
|
-
- -
|
179
|
+
- - ~>
|
144
180
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
181
|
+
version: 0.10.0
|
146
182
|
type: :development
|
147
183
|
prerelease: false
|
148
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
149
186
|
requirements:
|
150
|
-
- -
|
187
|
+
- - ~>
|
151
188
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
189
|
+
version: 0.10.0
|
153
190
|
- !ruby/object:Gem::Dependency
|
154
191
|
name: gem-ctags
|
155
192
|
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
156
194
|
requirements:
|
157
|
-
- -
|
195
|
+
- - ~>
|
158
196
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
197
|
+
version: 1.0.6
|
160
198
|
type: :development
|
161
199
|
prerelease: false
|
162
200
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
163
202
|
requirements:
|
164
|
-
- -
|
203
|
+
- - ~>
|
165
204
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
205
|
+
version: 1.0.6
|
167
206
|
- !ruby/object:Gem::Dependency
|
168
207
|
name: yard
|
169
208
|
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
170
210
|
requirements:
|
171
|
-
- -
|
211
|
+
- - ~>
|
172
212
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
213
|
+
version: 0.8.7
|
174
214
|
type: :development
|
175
215
|
prerelease: false
|
176
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
177
218
|
requirements:
|
178
|
-
- -
|
219
|
+
- - ~>
|
179
220
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
221
|
+
version: 0.8.7
|
181
222
|
- !ruby/object:Gem::Dependency
|
182
223
|
name: rubocop
|
183
224
|
requirement: !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
184
226
|
requirements:
|
185
|
-
- -
|
227
|
+
- - ~>
|
186
228
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
229
|
+
version: 0.24.1
|
188
230
|
type: :development
|
189
231
|
prerelease: false
|
190
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
none: false
|
191
234
|
requirements:
|
192
|
-
- -
|
235
|
+
- - ~>
|
193
236
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
237
|
+
version: 0.24.1
|
195
238
|
description: My collection of library that I have used that can be shared across multiple
|
196
239
|
projects
|
197
240
|
email:
|
@@ -201,24 +244,22 @@ executables:
|
|
201
244
|
extensions: []
|
202
245
|
extra_rdoc_files: []
|
203
246
|
files:
|
204
|
-
- ".gitignore"
|
205
|
-
- ".rubocop.yml"
|
206
|
-
- CHANGELOG.md
|
207
|
-
- Gemfile
|
208
|
-
- LICENSE
|
209
|
-
- README.md
|
210
|
-
- Rakefile
|
211
|
-
- agile_utils.gemspec
|
212
247
|
- bin/agile_utils
|
213
|
-
- lib/agile_utils.rb
|
214
248
|
- lib/agile_utils/base_option.rb
|
215
249
|
- lib/agile_utils/cli.rb
|
216
250
|
- lib/agile_utils/constant.rb
|
217
|
-
- lib/agile_utils/core_ext/blank_ext.rb
|
218
|
-
- lib/agile_utils/core_ext/hash_ext.rb
|
219
251
|
- lib/agile_utils/file_util.rb
|
220
252
|
- lib/agile_utils/helper.rb
|
221
253
|
- lib/agile_utils/version.rb
|
254
|
+
- lib/agile_utils.rb
|
255
|
+
- Gemfile
|
256
|
+
- Rakefile
|
257
|
+
- agile_utils.gemspec
|
258
|
+
- README.md
|
259
|
+
- CHANGELOG.md
|
260
|
+
- LICENSE
|
261
|
+
- .rubocop.yml
|
262
|
+
- .gitignore
|
222
263
|
- test/fixtures/inputs/demo1.xxx.rb
|
223
264
|
- test/fixtures/inputs/demo2.xxx.rb
|
224
265
|
- test/fixtures/outputs/demo1.xhtml
|
@@ -229,33 +270,34 @@ files:
|
|
229
270
|
homepage: https://github.com/agilecreativity/agile_utils
|
230
271
|
licenses:
|
231
272
|
- MIT
|
232
|
-
metadata: {}
|
233
273
|
post_install_message:
|
234
274
|
rdoc_options: []
|
235
275
|
require_paths:
|
236
276
|
- lib
|
237
277
|
required_ruby_version: !ruby/object:Gem::Requirement
|
278
|
+
none: false
|
238
279
|
requirements:
|
239
|
-
- -
|
280
|
+
- - ! '>='
|
240
281
|
- !ruby/object:Gem::Version
|
241
|
-
version:
|
282
|
+
version: 1.9.3
|
242
283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
284
|
+
none: false
|
243
285
|
requirements:
|
244
|
-
- -
|
286
|
+
- - ! '>='
|
245
287
|
- !ruby/object:Gem::Version
|
246
288
|
version: '0'
|
247
289
|
requirements: []
|
248
290
|
rubyforge_project:
|
249
|
-
rubygems_version:
|
291
|
+
rubygems_version: 1.8.23.2
|
250
292
|
signing_key:
|
251
|
-
specification_version:
|
293
|
+
specification_version: 3
|
252
294
|
summary: Collection of my ruby library that can be re-used across projects
|
253
295
|
test_files:
|
254
|
-
- test/
|
255
|
-
- test/
|
256
|
-
- test/test_helper.rb
|
296
|
+
- test/fixtures/inputs/demo1.xxx.rb
|
297
|
+
- test/fixtures/inputs/demo2.xxx.rb
|
257
298
|
- test/fixtures/outputs/demo1.xhtml
|
258
299
|
- test/fixtures/outputs/demo2.xhtml
|
259
|
-
- test/
|
260
|
-
- test/
|
300
|
+
- test/lib/agile_utils/test_file_util.rb
|
301
|
+
- test/lib/agile_utils/test_helper.rb
|
302
|
+
- test/test_helper.rb
|
261
303
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 1f8c1b541b40fa3be942b14f512ab854ba63db45
|
4
|
-
data.tar.gz: fc04830898c13606a4bfa0f6f677374268e1990f
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 371f251fc84dfef62e3d066c4977ab68f7f0ac0300ec4066cfdd2877dbb303a485a2cbc4a8d5a237d5f7c978545c4a73796dd4ca0f42fc752fc920f388ca53a6
|
7
|
-
data.tar.gz: e0b1f935542beecba8a555fffce1b63001f707f7dccef8ba532d1188005c6afb7a4c62b1a09be0f4be31e6e75cc94ce8cc45cc307ef9c875988d582e9698e5e5
|
@@ -1,109 +0,0 @@
|
|
1
|
-
module AgileUtils
|
2
|
-
module BlankExt
|
3
|
-
# encoding: utf-8
|
4
|
-
# from: active_support/core_ext/object/blank.rb
|
5
|
-
refine Object do
|
6
|
-
# An object is blank if it's false, empty, or a whitespace string.
|
7
|
-
# For example, '', ' ', +nil+, [], and {} are all blank.
|
8
|
-
#
|
9
|
-
# This simplifies:
|
10
|
-
#
|
11
|
-
# if address.nil? || address.empty?
|
12
|
-
#
|
13
|
-
# ...to:
|
14
|
-
#
|
15
|
-
# if address.blank?
|
16
|
-
def blank?
|
17
|
-
respond_to?(:empty?) ? empty? : !self
|
18
|
-
end
|
19
|
-
|
20
|
-
# An object is present if it's not <tt>blank?</tt>.
|
21
|
-
def present?
|
22
|
-
!blank?
|
23
|
-
end
|
24
|
-
|
25
|
-
# Returns object if it's <tt>present?</tt> otherwise returns +nil+.
|
26
|
-
# <tt>object.presence</tt> is equivalent to <tt>object.present? ? object : nil</tt>.
|
27
|
-
#
|
28
|
-
# This is handy for any representation of objects where blank is the same
|
29
|
-
# as not present at all. For example, this simplifies a common check for
|
30
|
-
# HTTP POST/query parameters:
|
31
|
-
#
|
32
|
-
# state = params[:state] if params[:state].present?
|
33
|
-
# country = params[:country] if params[:country].present?
|
34
|
-
# region = state || country || 'US'
|
35
|
-
#
|
36
|
-
# ...becomes:
|
37
|
-
#
|
38
|
-
# region = params[:state].presence || params[:country].presence || 'US'
|
39
|
-
def presence
|
40
|
-
self if present?
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
refine NilClass do
|
45
|
-
# +nil+ is blank:
|
46
|
-
#
|
47
|
-
# nil.blank? # => true
|
48
|
-
def blank?
|
49
|
-
true
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
refine FalseClass do
|
54
|
-
# +false+ is blank:
|
55
|
-
#
|
56
|
-
# false.blank? # => true
|
57
|
-
def blank?
|
58
|
-
true
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
refine TrueClass do
|
63
|
-
# +true+ is not blank:
|
64
|
-
#
|
65
|
-
# true.blank? # => false
|
66
|
-
def blank?
|
67
|
-
false
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
refine Array do
|
72
|
-
# An array is blank if it's empty:
|
73
|
-
#
|
74
|
-
# [].blank? # => true
|
75
|
-
# [1,2,3].blank? # => false
|
76
|
-
alias_method :blank?, :empty?
|
77
|
-
end
|
78
|
-
|
79
|
-
refine Hash do
|
80
|
-
# A hash is blank if it's empty:
|
81
|
-
#
|
82
|
-
# {}.blank? # => true
|
83
|
-
# { key: 'value' }.blank? # => false
|
84
|
-
alias_method :blank?, :empty?
|
85
|
-
end
|
86
|
-
|
87
|
-
refine String do
|
88
|
-
# A string is blank if it's empty or contains whitespaces only:
|
89
|
-
#
|
90
|
-
# ''.blank? # => true
|
91
|
-
# ' '.blank? # => true
|
92
|
-
# ' '.blank? # => true
|
93
|
-
# ' something here '.blank? # => false
|
94
|
-
def blank?
|
95
|
-
self !~ /[^[:space:]]/
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
refine Numeric do #:nodoc:
|
100
|
-
# No number is blank:
|
101
|
-
#
|
102
|
-
# 1.blank? # => false
|
103
|
-
# 0.blank? # => false
|
104
|
-
def blank?
|
105
|
-
false
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
module AgileUtils
|
2
|
-
module HashExt
|
3
|
-
refine Hash do
|
4
|
-
# File activesupport/lib/active_support/core_ext/hash/keys.rb
|
5
|
-
#
|
6
|
-
# hash = { name: 'Rob', age: '28' }
|
7
|
-
# hash.transform_keys{ |key| key.to_s.upcase }
|
8
|
-
# => { "NAME" => "Rob", "AGE" => "28" }
|
9
|
-
def transform_keys
|
10
|
-
result = {}
|
11
|
-
each_key do |key|
|
12
|
-
result[yield(key)] = self[key]
|
13
|
-
end
|
14
|
-
result
|
15
|
-
end
|
16
|
-
|
17
|
-
def transform_keys!(&block)
|
18
|
-
keys.each do |key|
|
19
|
-
value = delete(key)
|
20
|
-
self[yield(key)] = value.is_a?(Hash) ? value.transform_keys!(&block) : value
|
21
|
-
end
|
22
|
-
self
|
23
|
-
end
|
24
|
-
|
25
|
-
# hash = { 'name' => 'Rob', 'age' => '28' }
|
26
|
-
# hash.symbolize_keys
|
27
|
-
# => { name: "Rob", age: "28" }
|
28
|
-
def symbolize_keys
|
29
|
-
transform_keys { |key| key.to_sym rescue key }
|
30
|
-
end
|
31
|
-
|
32
|
-
# File activesupport/lib/active_support/core_ext/hash/keys.rb, line 135
|
33
|
-
def symbolize_keys!
|
34
|
-
transform_keys! { |key| key.to_sym rescue key }
|
35
|
-
end
|
36
|
-
|
37
|
-
# Merges the caller into +other_hash+. For example,
|
38
|
-
#
|
39
|
-
# options = options.reverse_merge(size: 25, velocity: 10)
|
40
|
-
#
|
41
|
-
# is equivalent to
|
42
|
-
#
|
43
|
-
# options = { size: 25, velocity: 10 }.merge(options)
|
44
|
-
#
|
45
|
-
# This is particularly useful for initializing an options hash
|
46
|
-
# with default values.
|
47
|
-
def reverse_merge(other_hash)
|
48
|
-
other_hash.merge(self)
|
49
|
-
end
|
50
|
-
|
51
|
-
# Destructive +reverse_merge+.
|
52
|
-
def reverse_merge!(other_hash)
|
53
|
-
# right wins if there is no left
|
54
|
-
merge!(other_hash) { |key, left, right| left }
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|