hanami-utils 2.0.0.alpha6 → 2.0.0.rc1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +157 -1
- data/README.md +9 -18
- data/hanami-utils.gemspec +0 -1
- data/lib/hanami/utils/string.rb +1 -1
- data/lib/hanami/utils/version.rb +2 -4
- metadata +2 -8
- data/lib/hanami/interactor.rb +0 -619
- data/lib/hanami/logger/colorizer.rb +0 -105
- data/lib/hanami/logger/filter.rb +0 -144
- data/lib/hanami/logger/formatter.rb +0 -183
- data/lib/hanami/logger.rb +0 -362
- data/lib/hanami/utils/basic_object.rb +0 -141
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e32b8748a32b673f476ffc41c81608f5e6d372f610e990594488c214e27fdfd1
|
4
|
+
data.tar.gz: 0e043561435c85f622bd8a1b1f341a5ad77b1359578fd00923c0ee19c6150b63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbedf69794dbd7ee0ae949ef77a2891fe29c5439feb7cb3c6e2e91b87b3fae16f74e6f624357e646cb68c47668120d5be0cc8e8961c198c75106f0636cb4373e
|
7
|
+
data.tar.gz: 615330821eadb25847032710fff58adab597281783b09767e92da9ecf3523cb511dff516ed5f6640d06b5d8d5cfaaa8c93ffcb45f1be5db520ec7ccdb058a84d
|
data/CHANGELOG.md
CHANGED
@@ -1,30 +1,58 @@
|
|
1
1
|
# Hanami::Utils
|
2
|
-
|
2
|
+
|
3
|
+
Ruby core extensions and class utilities for Hanami
|
4
|
+
|
5
|
+
## v2.0.0.rc1 - 2022-11-08
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
|
9
|
+
- [Benjamin Klotz] Ensure `Hanami::Utils::String.underscore` to replace `"."` (dot character) into underscore
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- [Luca Guidi] Removed `Hanami::Logger` in favor of `Dry::Logger`
|
14
|
+
|
15
|
+
## v2.0.0.beta1 - 2022-07-20
|
16
|
+
|
17
|
+
### Changed
|
18
|
+
|
19
|
+
- [Luca Guidi] Removed `Hanami::Utils::BasicObject` (moved to `dry-core` as `Dry::Core::BasicObject`)
|
20
|
+
- [Luca Guidi] Removed `Hanami::Interactor`
|
3
21
|
|
4
22
|
## v2.0.0.alpha6 - 2022-02-10
|
23
|
+
|
5
24
|
### Added
|
25
|
+
|
6
26
|
- [Luca Guidi] Official support for Ruby: MRI 3.0 and 3.1
|
7
27
|
|
8
28
|
### Fixed
|
29
|
+
|
9
30
|
- [Rob Jacoby] Allow `Hanami::Logger#initialize` to accept `File::NULL` as `stream:` argument
|
10
31
|
|
11
32
|
### Changed
|
33
|
+
|
12
34
|
- [Luca Guidi] Drop support for Ruby: MRI 2.6 and 2.7.
|
13
35
|
|
14
36
|
## v2.0.0.alpha3 - 2021-11-09
|
37
|
+
|
15
38
|
No changes.
|
16
39
|
|
17
40
|
## v2.0.0.alpha2 - 2021-05-04
|
41
|
+
|
18
42
|
### Changed
|
43
|
+
|
19
44
|
- [Luca Guidi] Drop support for Ruby: MRI 2.5.
|
20
45
|
- [Luca Guidi] Transform `Utils::String` from class to module
|
21
46
|
|
22
47
|
## v2.0.0.alpha1 - 2019-01-30
|
48
|
+
|
23
49
|
### Added
|
50
|
+
|
24
51
|
- [Gustavo Caso] Introduce `Hanami::Middleware` namespace
|
25
52
|
- [Luca Guidi] Introduce `Callbacks::Chain#dup`
|
26
53
|
|
27
54
|
### Changed
|
55
|
+
|
28
56
|
- [Luca Guidi] Drop support for Ruby: MRI 2.3, and 2.4.
|
29
57
|
- [Luca Guidi] Remove `Utils::Duplicable`
|
30
58
|
- [Luca Guidi] Remove `Utils::Inflector`
|
@@ -37,62 +65,85 @@ No changes.
|
|
37
65
|
- [Vladimir Suvorov] Remove `Utils::Class.load_from_pattern!`
|
38
66
|
|
39
67
|
## v1.3.8 - 2021-05-03
|
68
|
+
|
40
69
|
### Fixed
|
70
|
+
|
41
71
|
- [Hiếu Nguyễn] Ensure `Hanami::Interactor#initialize` to accept keyword arguments while working with Ruby 3
|
42
72
|
|
43
73
|
## v1.3.7 - 2021-01-04
|
74
|
+
|
44
75
|
### Added
|
76
|
+
|
45
77
|
- [Luca Guidi] Official support for Ruby: MRI 3.0
|
46
78
|
- [Khai Le] Allow `Hanami::Logger` to filter sensitive data for an array of hashes
|
47
79
|
|
48
80
|
### Fixed
|
81
|
+
|
49
82
|
- [Hiếu Nguyễn] Ensure `Hanami::Logger` to not mutate `Hash` input when filtering sensitive data
|
50
83
|
|
51
84
|
## v1.3.6 - 2020-01-07
|
85
|
+
|
52
86
|
### Added
|
87
|
+
|
53
88
|
- [Luca Guidi] Official support for Ruby: MRI 2.7
|
54
89
|
|
55
90
|
### Fixed
|
91
|
+
|
56
92
|
- [ippachi] `Utils::Files.append`: don't check breakline if file is empty
|
57
93
|
|
58
94
|
## v1.3.5 - 2019-10-25
|
95
|
+
|
59
96
|
### Fixed
|
97
|
+
|
60
98
|
- [Ivan Kabluchkov] Ensure `Hanami::Logger` filters to not crash when logger stream is a closed tempfile
|
61
99
|
- [Luca Guidi] Ensure `Utils::Files.append` to append contents properly when existing file doesn't end with a newline
|
62
100
|
|
63
101
|
## v1.3.4 - 2019-09-27
|
102
|
+
|
64
103
|
### Added
|
104
|
+
|
65
105
|
- [Luca Guidi] Let `Utils::BasicObject` to lookup constants at the top-level namespace
|
66
106
|
|
67
107
|
## v1.3.3 - 2019-09-13
|
108
|
+
|
68
109
|
### Fixed
|
110
|
+
|
69
111
|
- [Mauro Morales] Ensure `Utils::Inflector.pluralize` and `.singularize` to work with words that contain an underscore (`_`)
|
70
112
|
|
71
113
|
## v1.3.2 - 2019-06-21
|
114
|
+
|
72
115
|
### Added
|
116
|
+
|
73
117
|
- [Vladislav Yashin & Luca Guidi] Added `Utils::BasicObject#instance_of?`, `#is_a?`, and `#kind_of`
|
74
118
|
|
75
119
|
## v1.3.1 - 2019-01-18
|
120
|
+
|
76
121
|
### Added
|
122
|
+
|
77
123
|
- [Luca Guidi] Official support for Ruby: MRI 2.6
|
78
124
|
- [Luca Guidi] Support `bundler` 2.0+
|
79
125
|
|
80
126
|
### Fixed
|
127
|
+
|
81
128
|
- [Alfonso Uceda] Fix `Hash` serialization for `Utils::Logger`
|
82
129
|
- [Jeff Dickey] Add missing `pathname` require in `lib/hanami/utils.rb`
|
83
130
|
|
84
131
|
## v1.3.0 - 2018-10-24
|
85
132
|
|
86
133
|
## v1.3.0.beta1 - 2018-08-08
|
134
|
+
|
87
135
|
### Added
|
136
|
+
|
88
137
|
- [Luca Guidi] Official support for JRuby 9.2.0.0
|
89
138
|
- [graywolf] Add `Utils::Files.inject_line_before_last` and `.inject_line_after_last`
|
90
139
|
|
91
140
|
### Fixed
|
141
|
+
|
92
142
|
- [graywolf] Don't show `Fixnum` Ruby warning for 2.4+
|
93
143
|
- [Luca Guidi] Fix pluralization of `"fee"`
|
94
144
|
|
95
145
|
### Deprecated
|
146
|
+
|
96
147
|
- [Luca Guidi & Marion Schleifer] Deprecate `Utils::String` as Ruby type. Please use `Utils::String` class methods instead of `Utils::String.new("")`.
|
97
148
|
- [Luca Guidi & Marion Schleifer] Deprecate `Utils::Hash` as Ruby type. Please use `Utils::Hash` class methods instead of `Utils::Hash.new({})`.
|
98
149
|
- [Luca Guidi & Marion Schleifer] Deprecate `Utils::String.pluralize` and `.singularize`.
|
@@ -101,14 +152,19 @@ No changes.
|
|
101
152
|
## v1.2.0 - 2018-04-11
|
102
153
|
|
103
154
|
## v1.2.0.rc2 - 2018-04-06
|
155
|
+
|
104
156
|
### Added
|
157
|
+
|
105
158
|
- [Luca Guidi] Use different colors for each `Hanami::Logger` level
|
106
159
|
|
107
160
|
## v1.2.0.rc1 - 2018-03-30
|
161
|
+
|
108
162
|
### Added
|
163
|
+
|
109
164
|
- [Oana Sipos & Sean Collins & Luca Guidi] Colored logging
|
110
165
|
|
111
166
|
### Fixed
|
167
|
+
|
112
168
|
- [Luca Guidi] Make `Hanami::Logger` to properly log hash messages
|
113
169
|
|
114
170
|
## v1.2.0.beta2 - 2018-03-23
|
@@ -116,25 +172,34 @@ No changes.
|
|
116
172
|
## v1.2.0.beta1 - 2018-02-28
|
117
173
|
|
118
174
|
## v1.1.2 - 2018-02-02
|
175
|
+
|
119
176
|
### Added
|
177
|
+
|
120
178
|
- [Luca Guidi] Official support for Ruby: MRI 2.5
|
121
179
|
|
122
180
|
### Fixed
|
181
|
+
|
123
182
|
- [Sean Collins & Luca Guidi] Make `Utils::Files.write` idempotent: ensure to truncate the file before to write
|
124
183
|
- [Sean Collins & Luca Guidi] Don't erase file contents when invoking `Utils::Files.touch`
|
125
184
|
|
126
185
|
### Changed
|
186
|
+
|
127
187
|
- [Sean Collins & Luca Guidi] Deprecate `Utils::Files.rewrite` in favor of `.write`
|
128
188
|
|
129
189
|
## v1.1.1 - 2017-11-22
|
190
|
+
|
130
191
|
### Added
|
192
|
+
|
131
193
|
- [Luca Guidi] Introduce `Utils::Hash.deep_stringify` to recursively stringify a hash
|
132
194
|
|
133
195
|
### Fixed
|
196
|
+
|
134
197
|
- [Yuta Tokitake] Ensure `Interactor#call` to accept non-keyword arguments
|
135
198
|
|
136
199
|
## v1.1.0 - 2017-10-25
|
200
|
+
|
137
201
|
### Added
|
202
|
+
|
138
203
|
- [Luca Guidi] Introduce `Utils::Hash.deep_serialize` to recursively serialize input into `::Hash`
|
139
204
|
|
140
205
|
## v1.1.0.rc1 - 2017-10-16
|
@@ -142,11 +207,15 @@ No changes.
|
|
142
207
|
## v1.1.0.beta3 - 2017-10-04
|
143
208
|
|
144
209
|
## v1.1.0.beta2 - 2017-10-03
|
210
|
+
|
145
211
|
### Added
|
212
|
+
|
146
213
|
- [Alfonso Uceda] Auto create directory for `Hanami::Logger`
|
147
214
|
|
148
215
|
## v1.1.0.beta1 - 2017-08-11
|
216
|
+
|
149
217
|
### Added
|
218
|
+
|
150
219
|
- [Marion Duprey] Allow `Hanami::Interactor#call` to accept arguments. `#initialize` should be used for Dependency Injection, while `#call` should be used for input
|
151
220
|
- [Marion Schleifer] Introduce `Utils::Hash.stringify`
|
152
221
|
- [Marion Schleifer] Introduce `Utils::String.titleize`, `.capitalize`, `.classify`, `.underscore`, `.dasherize`, `.demodulize`, `.namespace`, `.pluralize`, `.singularize`, and `.rsub`
|
@@ -155,101 +224,136 @@ No changes.
|
|
155
224
|
- [Marion Duprey & Gabriel Gizotti] Filter sensitive informations for `Hanami::Logger`
|
156
225
|
|
157
226
|
## v1.0.4 - 2017-10-02
|
227
|
+
|
158
228
|
### Fixed
|
229
|
+
|
159
230
|
- [Luca Guidi] Make `Hanami::Utils::BasicObject` to be fully compatible with Ruby's `pp` and to be inspected by Pry.
|
160
231
|
- [Thiago Kenji Okada] Fix pluralization/singularization for `"release" => "releases"`
|
161
232
|
|
162
233
|
## v1.0.3 - 2017-09-06
|
234
|
+
|
163
235
|
### Fixed
|
236
|
+
|
164
237
|
- [Malina Sulca] Fix pluralization/singularization for `"exercise" => "exercises"`
|
165
238
|
- [Xavier Barbosa] Fix pluralization/singularization for `"area" => "areas"`
|
166
239
|
|
167
240
|
## v1.0.2 - 2017-07-10
|
241
|
+
|
168
242
|
### Fixed
|
243
|
+
|
169
244
|
- [Anton Davydov] Fix pluralization/singularization for `"phrase" => "phrases"`
|
170
245
|
|
171
246
|
## v1.0.1 - 2017-06-23
|
247
|
+
|
172
248
|
### Added
|
249
|
+
|
173
250
|
- [Luca Guidi] Introduced `Utils::Hash.symbolize` and `.deep_symbolize`
|
174
251
|
- [Luca Guidi] Introduced `Utils::Hash.deep_dup`
|
175
252
|
|
176
253
|
### Fixed
|
254
|
+
|
177
255
|
- [choallin] Ensure `Utils::String#classify` to return output identical to the input for already classified strings.
|
178
256
|
- [Marion Duprey & Jonas Amundsen] Ensure `Utils::Hash#initialize` to accept frozen `Hash` as argument.
|
179
257
|
|
180
258
|
## v1.0.0 - 2017-04-06
|
181
259
|
|
182
260
|
## v1.0.0.rc1 - 2017-03-31
|
261
|
+
|
183
262
|
### Added
|
263
|
+
|
184
264
|
- [Luca Guidi] Allow `Hanami::Logger#initialize` to accept arguments to be compliant with Ruby's `Logger`
|
185
265
|
|
186
266
|
## v1.0.0.beta3 - 2017-03-17
|
267
|
+
|
187
268
|
### Fixed
|
269
|
+
|
188
270
|
- [Luca Guidi] Use `$stdout` instead of `STDOUT` as default stream for `Hanami::Logger`
|
189
271
|
|
190
272
|
### Changed
|
273
|
+
|
191
274
|
- [Luca Guidi] Removed `Utils::Attributes`
|
192
275
|
- [Luca Guidi] Removed deprecated `Hanami::Interactor::Result#failing?`
|
193
276
|
- [Luca Guidi] Removed deprecated `Utils::Json.load` and `.dump`
|
194
277
|
|
195
278
|
## v1.0.0.beta2 - 2017-03-02
|
279
|
+
|
196
280
|
### Changed
|
281
|
+
|
197
282
|
- [Anton Davydov] Made `Utils::Blank` private API
|
198
283
|
|
199
284
|
## v1.0.0.beta1 - 2017-02-14
|
285
|
+
|
200
286
|
### Added
|
287
|
+
|
201
288
|
- [Luca Guidi] Official support for Ruby: MRI 2.4
|
202
289
|
- [alexd16] Introduced `Utils::Hash#deep_symbolize!` for deep symbolization
|
203
290
|
- [Luca Guidi] Introduced `Hanami::Utils.reload!` as a mechanism to force code reloading in development
|
204
291
|
|
205
292
|
### Fixed
|
293
|
+
|
206
294
|
- [alexd16 & Alfonso Uceda & Luca Guidi] Don't deeply symbolize `Hanami::Interactor::Result` payload
|
207
295
|
- [Alfonso Uceda] `Hanami::Interactor::Result`: Don't transform objects that respond to `#to_hash` (like entities)
|
208
296
|
- [Bhanu Prakash] Use `Utils::Json.generate` instead of the deprecated `.dump` for `Hanami::Logger` JSON formatter
|
209
297
|
- [Luca Guidi] `Hanami::Logger`: when a `Hash` message is passed, don't nest it under `:message` key, but unwrap at the top level
|
210
298
|
|
211
299
|
### Changed
|
300
|
+
|
212
301
|
- [alexd16] `Utils::Hash#symbolize!` no longer symbolizes deep structures
|
213
302
|
- [Luca Guidi & Alfonso Uceda] Improve readability for default logger formatter
|
214
303
|
- [Luca Guidi] Use ISO-8601 time format for JSON logger formatter
|
215
304
|
|
216
305
|
## v0.9.2 - 2016-12-19
|
306
|
+
|
217
307
|
### Added
|
308
|
+
|
218
309
|
- [Grachev Mikhail] Introduced `Hanami::Interactor::Result#failure?`
|
219
310
|
|
220
311
|
### Fixed
|
312
|
+
|
221
313
|
- [Paweł Świątkowski] `Utils::Inflector.pluralize` Pluralize -en to -ens instead of -ina
|
222
314
|
|
223
315
|
### Changed
|
316
|
+
|
224
317
|
- [Grachev Mikhail] Deprecate `Hanami::Interactor::Result#failing?` in favor of `#failure?`
|
225
318
|
|
226
319
|
## v0.9.1 - 2016-11-18
|
320
|
+
|
227
321
|
### Added
|
322
|
+
|
228
323
|
- [Luca Guidi] Introduced `Utils::Json.parse` and `.generate`
|
229
324
|
|
230
325
|
### Fixed
|
326
|
+
|
231
327
|
- [Luca Guidi] Ensure `Utils::Json` parsing to not eval untrusted input
|
232
328
|
|
233
329
|
### Changed
|
330
|
+
|
234
331
|
- [Luca Guidi] Deprecated `Utils::Json.load` in favor of `.parse`
|
235
332
|
- [Luca Guidi] Deprecated `Utils::Json.dump` in favor of `.generate`
|
236
333
|
|
237
334
|
## v0.9.0 - 2016-11-15
|
335
|
+
|
238
336
|
### Added
|
337
|
+
|
239
338
|
– [Luca Guidi] Introduced `Utils.require!` to recursively require Ruby files with an order that is consistent across platforms
|
240
339
|
– [Luca Guidi] Introduced `Utils::FileList` as cross-platform ordered list of files, alternative to `Dir.glob`
|
340
|
+
|
241
341
|
- [Luca Guidi] Make `Utils::BasicObject` pretty printable
|
242
342
|
- [Grachev Mikhail] Added `Interactor::Result#successful?` and `#failing?`
|
243
343
|
|
244
344
|
### Fixed
|
345
|
+
|
245
346
|
- [Pascal Betz] Ensure `Utils::Class.load!` to lookup constant only within the given namespace
|
246
347
|
|
247
348
|
### Changed
|
349
|
+
|
248
350
|
- [Luca Guidi] Make `Utils::Hash` only compatible with objects that respond to `#to_hash`
|
249
351
|
- [Luca Guidi] Official support for Ruby: MRI 2.3+ and JRuby 9.1.5.0+
|
250
352
|
|
251
353
|
## v0.8.0 - 2016-07-22
|
354
|
+
|
252
355
|
### Added
|
356
|
+
|
253
357
|
- [Andrey Morskov] Introduced `Hanami::Utils::Blank`
|
254
358
|
- [Anton Davydov] Allow to specify a default log level for `Hanami::Logger`
|
255
359
|
- [Anton Davydov] Introduced default and JSON formatters for `Hanami::Logger`
|
@@ -263,101 +367,139 @@ No changes.
|
|
263
367
|
- [Rogério Ramos] Fix English pluralization for words ending with `"ice"`
|
264
368
|
|
265
369
|
### Changed
|
370
|
+
|
266
371
|
- [Luca Guidi] Drop support for Ruby 2.0, 2.1 and Rubinius. Official support for JRuby 9.0.5.0+.
|
267
372
|
|
268
373
|
## v0.7.1 - 2016-02-05
|
374
|
+
|
269
375
|
### Fixed
|
376
|
+
|
270
377
|
- [Yuuji Yaginuma] `Hanami::Utils::Escape`: fixed Ruby warning for `String#chars` with a block, which is deprecated. Using `String#each_char` now.
|
271
378
|
- [Sean Collins] Allow non string objects to be escaped by `Hanami::Utils::Escape`.
|
272
379
|
|
273
380
|
## v0.7.0 - 2016-01-22
|
381
|
+
|
274
382
|
### Changed
|
383
|
+
|
275
384
|
- [Luca Guidi] Renamed the project
|
276
385
|
|
277
386
|
## v0.6.1 - 2016-01-19
|
387
|
+
|
278
388
|
### Fixed
|
389
|
+
|
279
390
|
- [Anton Davydov] Ensure `Lotus::Utils::String#classify` to work properly with dashes (eg. `"app-store" => "App::Store"`)
|
280
391
|
|
281
392
|
## v0.6.0 - 2016-01-12
|
393
|
+
|
282
394
|
### Added
|
395
|
+
|
283
396
|
- [Luca Guidi] Official support for Ruby 2.3
|
284
397
|
- [Luca Guidi] Custom inflections
|
285
398
|
- [Luca Guidi] Introduced `Lotus::Utils::Duplicable` as a safe dup logic for Ruby types
|
286
399
|
- [Luca Guidi] Added `Lotus::Utils::String#rsub` replace rightmost occurrence
|
287
400
|
|
288
401
|
### Fixed
|
402
|
+
|
289
403
|
- [Luca Guidi] Fix `Lotus::Utils::PathPrefix#join` and `#relative_join` by rejecting arguments that are equal to the separator
|
290
404
|
- [Karim Kiatlottiavi] Fix `Encoding::UndefinedConversionError` in `Lotus::Utils::Escape.encode`
|
291
405
|
|
292
406
|
### Changed
|
407
|
+
|
293
408
|
- [Luca Guidi] Deprecate Ruby 2.0 and 2.1
|
294
409
|
- [Luca Guidi] Removed `Lotus::Utils::Callbacks#add` in favor of `#append`
|
295
410
|
- [Luca Guidi] Removed pattern support for `Utils::Class.load!` (eg. `Articles(Controller|::Controller)`)
|
296
411
|
|
297
412
|
## v0.5.2 - 2015-09-30
|
413
|
+
|
298
414
|
### Added
|
415
|
+
|
299
416
|
- [Luca Guidi] Added `Lotus::Utils::String#capitalize`
|
300
417
|
- [Trung Lê] Official support for JRuby 9k+
|
301
418
|
|
302
419
|
## v0.5.1 - 2015-07-10
|
420
|
+
|
303
421
|
### Fixed
|
422
|
+
|
304
423
|
- [Thiago Felippe] Ensure `Lotus::Utils::PathPrefix#join` won't remote duplicate entries (eg `/admin/dashboard/admin`)
|
305
424
|
|
306
425
|
## v0.5.0 - 2015-06-23
|
426
|
+
|
307
427
|
### Added
|
428
|
+
|
308
429
|
- [Luca Guidi] Extracted `Lotus::Logger` from `hanamirb`
|
309
430
|
|
310
431
|
### Changed
|
432
|
+
|
311
433
|
- [Luca Guidi] `Lotus::Interactor::Result` contains only objects explicitly exposed via `Lotus::Interactor.expose`.
|
312
434
|
|
313
435
|
## v0.4.3 - 2015-05-22
|
436
|
+
|
314
437
|
### Added
|
438
|
+
|
315
439
|
- [François Beausoleil] Improved `Lotus::Utils::Kernel` messages for `TypeError`.
|
316
440
|
|
317
441
|
## v0.4.2 - 2015-05-15
|
442
|
+
|
318
443
|
### Fixed
|
444
|
+
|
319
445
|
- [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to return `::Hash`
|
320
446
|
|
321
447
|
## v0.4.1 - 2015-05-15
|
448
|
+
|
322
449
|
### Added
|
450
|
+
|
323
451
|
- [Luca Guidi & Alfonso Uceda Pompa] Introduced `Lotus::Utils::Inflector`, `Lotus::Utils::String#pluralize` and `#singularize`
|
324
452
|
|
325
453
|
### Fixed
|
454
|
+
|
326
455
|
- [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to safely return nested `::Hash` instances for complex data structures.
|
327
456
|
- [Luca Guidi] Let `Lotus::Interactor#error` to return a falsey value for control flow. (eg. `check_permissions or error "You can't access"`)
|
328
457
|
|
329
458
|
## v0.4.0 - 2015-03-23
|
459
|
+
|
330
460
|
### Added
|
461
|
+
|
331
462
|
- [Luca Guidi] Introduced `Lotus::Utils::Escape`. It implements OWASP/ESAPI suggestions for HTML, HTML attribute and URL escape utilities.
|
332
463
|
- [Luca Guidi] Introduced `Lotus::Utils::String#dasherize`
|
333
464
|
- [Luca Guidi] Introduced `Lotus::Utils::String#titleize`
|
334
465
|
|
335
466
|
## v0.3.5 - 2015-03-12
|
467
|
+
|
336
468
|
### Added
|
469
|
+
|
337
470
|
- [Luca Guidi] Introduced `Lotus::Interactor`
|
338
471
|
- [Luca Guidi] Introduced `Lotus::Utils::BasicObject`
|
339
472
|
|
340
473
|
## v0.3.4 - 2015-01-30
|
474
|
+
|
341
475
|
### Added
|
476
|
+
|
342
477
|
- [Alfonso Uceda Pompa] Aliased `Lotus::Utils::Attributes#get` with `#[]`
|
343
478
|
- [Simone Carletti] Introduced `Lotus::Utils::Callbacks::Chain#prepend` and `#append`
|
344
479
|
|
345
480
|
### Deprecated
|
481
|
+
|
346
482
|
- [Luca Guidi] Deprecated `Lotus::Utils::Callbacks::Chain#add` in favor of `#append`
|
347
483
|
|
348
484
|
## v0.3.3 - 2015-01-08
|
485
|
+
|
349
486
|
### Fixed
|
487
|
+
|
350
488
|
- [Luca Guidi] Ensure to return the right offending object if a missing method is called with Utils::String and Hash (eg. `Utils::Hash.new(a: 1).all? {|_, v| v.foo }` blame `v` instead of `Hash`)
|
351
489
|
- [Luca Guidi] Raise an error if try to coerce non numeric strings into Integer, Float & BigDecimal (eg. `Utils::Kernel.Integer("hello") # => raise TypeError`)
|
352
490
|
|
353
491
|
## v0.3.2 - 2014-12-23
|
492
|
+
|
354
493
|
### Added
|
494
|
+
|
355
495
|
- [Luca Guidi] Official support for Ruby 2.2
|
356
496
|
- [Luca Guidi] Introduced `Utils::Attributes`
|
357
497
|
- [Luca Guidi] Added `Utils::Hash#stringify!`
|
358
498
|
|
359
499
|
## v0.3.1 - 2014-11-23
|
500
|
+
|
360
501
|
### Added
|
502
|
+
|
361
503
|
- [Luca Guidi] Allow `Utils::Class.load!` to accept any object that implements `#to_s`
|
362
504
|
- [Trung Lê] Allow `Utils::Class.load!` to accept a class
|
363
505
|
- [Luca Guidi] Introduced `Utils::Class.load_from_pattern!`
|
@@ -371,14 +513,18 @@ No changes.
|
|
371
513
|
- [Luca Guidi] Made `Utils::PathPrefix#join` to accept multiple argument
|
372
514
|
|
373
515
|
### Fixed
|
516
|
+
|
374
517
|
- [Luca Guidi] Made `Utils::PathPrefix#join` remove trailing occurrences for `@separator` from the output
|
375
518
|
- [Luca Guidi] Made `Utils::PathPrefix#relative_join` to correctly replace all the instances of `@separator` from the output
|
376
519
|
|
377
520
|
### Deprecated
|
521
|
+
|
378
522
|
- [Luca Guidi] Deprecated `Utils::Class.load!` with a pattern like `Articles(Controller|::Controller)`, use `Utils::Class.load_from_pattern!` instead
|
379
523
|
|
380
524
|
## v0.3.0 - 2014-10-23
|
525
|
+
|
381
526
|
### Added
|
527
|
+
|
382
528
|
- [Celso Fernandes] Add BigDecimal coercion to Lotus::Utils::Kernel
|
383
529
|
- [Luca Guidi] Define `Boolean` constant, if missing
|
384
530
|
- [Luca Guidi] Use composition over inheritance for `Lotus::Utils::PathPrefix`
|
@@ -386,6 +532,7 @@ No changes.
|
|
386
532
|
- [Luca Guidi] Use composition over inheritance for `Lotus::Utils::String`
|
387
533
|
|
388
534
|
### Fixed
|
535
|
+
|
389
536
|
- [Luca Guidi] Improved error message for `Utils::Class.load!`
|
390
537
|
- [Tom Kadwill] Improved error `NameError` message by passing in the whole constant name to `Utils::Class.load!`
|
391
538
|
- [Luca Guidi] `Utils::Hash#to_h` return instances of `::Hash` in case of nested symbolized data structure
|
@@ -395,7 +542,9 @@ No changes.
|
|
395
542
|
- [Luca Guidi] Ensure `Utils::Hash#inspect` output to be the same of `::Hash#inspect`
|
396
543
|
|
397
544
|
## v0.2.0 - 2014-06-23
|
545
|
+
|
398
546
|
### Added
|
547
|
+
|
399
548
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.Symbol`
|
400
549
|
- [Luca Guidi] Made `Kernel.Pathname` to raise an error when `nil` is passed as argument
|
401
550
|
- [Luca Guidi] Implemented `Lotus::Utils::LoadPaths#freeze` in order to prevent modification after the object has been frozen
|
@@ -406,9 +555,11 @@ No changes.
|
|
406
555
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.Pathname`
|
407
556
|
|
408
557
|
### Fixed
|
558
|
+
|
409
559
|
- [Luca Guidi] Implemented `Lotus::Utils::LoadPaths#initialize_copy` in order to safely `#dup` and `#clone`
|
410
560
|
|
411
561
|
### Changed
|
562
|
+
|
412
563
|
- [Luca Guidi] Implemented `Lotus::Utils::Callbacks::Chain#freeze` in order to prevent modification after the object has been frozen
|
413
564
|
- [Luca Guidi] All the `Utils::Kernel` methods will raise `TypeError` in case of failed coercion.
|
414
565
|
- [Luca Guidi] Made `Kernel.Time` to raise an error when `nil` is passed as argument
|
@@ -424,7 +575,9 @@ No changes.
|
|
424
575
|
- [Luca Guidi] Use composition over inheritance for `Lotus::Utils::Callbacks::Chain`
|
425
576
|
|
426
577
|
## v0.1.1 - 2014-04-23
|
578
|
+
|
427
579
|
### Added
|
580
|
+
|
428
581
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.Time`
|
429
582
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.DateTime`
|
430
583
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.Date`
|
@@ -437,10 +590,13 @@ No changes.
|
|
437
590
|
- [Luca Guidi] Implemented `Lotus::Utils::Kernel.Array`
|
438
591
|
|
439
592
|
### Fixed
|
593
|
+
|
440
594
|
- [Christopher Keele] Add missing stdlib `Set` require to `Utils::ClassAttribute`
|
441
595
|
|
442
596
|
## v0.1.0 - 2014-01-23
|
597
|
+
|
443
598
|
### Added
|
599
|
+
|
444
600
|
- [Luca Guidi] Introduced `Lotus::Utils::String#demodulize`
|
445
601
|
- [Luca Guidi] Introduced `Lotus::Utils::IO.silence_warnings`
|
446
602
|
- [Luca Guidi] Introduced class loading mechanism from a string: `Utils::Class.load!`
|
data/README.md
CHANGED
@@ -10,23 +10,22 @@ Ruby core extensions and class utilities for [Hanami](http://hanamirb.org)
|
|
10
10
|
[](https://depfu.com/github/hanami/utils?project=Bundler)
|
11
11
|
[](http://inch-ci.org/github/hanami/utils)
|
12
12
|
|
13
|
-
|
14
13
|
## Version
|
15
14
|
|
16
15
|
**This branch contains the code for `hanami-utils` 2.x.**
|
17
16
|
|
18
17
|
## Contact
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
- Home page: http://hanamirb.org
|
20
|
+
- Mailing List: http://hanamirb.org/mailing-list
|
21
|
+
- API Doc: http://rdoc.info/gems/hanami-utils
|
22
|
+
- Bugs/Issues: https://github.com/hanami/utils/issues
|
23
|
+
- Support: http://stackoverflow.com/questions/tagged/hanami
|
24
|
+
- Chat: http://chat.hanamirb.org
|
26
25
|
|
27
26
|
## Rubies
|
28
27
|
|
29
|
-
|
28
|
+
**Hanami::Utils** supports Ruby (MRI) 3.0+
|
30
29
|
|
31
30
|
## Installation
|
32
31
|
|
@@ -46,23 +45,15 @@ Or install it yourself as:
|
|
46
45
|
|
47
46
|
## Usage
|
48
47
|
|
49
|
-
|
48
|
+
**Hanami::Utils** is designed to enhance Ruby's code and stdlib.
|
50
49
|
**By default this gem doesn't load any code, you must require what you need.**
|
51
50
|
|
52
51
|
## Features
|
53
52
|
|
54
|
-
### Hanami::Interactor
|
55
|
-
|
56
|
-
Standardized Service Object with small interface and rich returning result. [[API doc](http://www.rubydoc.info/gems/hanami-utils/Hanami/Interactor)]
|
57
|
-
|
58
53
|
### Hanami::Logger
|
59
54
|
|
60
55
|
Enhanced version of Ruby's `Logger`. [[API doc](http://www.rubydoc.info/gems/hanami-utils/Hanami/Logger)]
|
61
56
|
|
62
|
-
### Hanami::Utils::BasicObject
|
63
|
-
|
64
|
-
Enhanced version of Ruby's `BasicObject`. [[API doc](http://www.rubydoc.info/gems/hanami-utils/Hanami/Utils/BasicObject)]
|
65
|
-
|
66
57
|
### Hanami::Utils::Blank
|
67
58
|
|
68
59
|
Checks for blank. [[API doc](http://www.rubydoc.info/gems/hanami-utils/Hanami/Utils/Blank)]
|
@@ -133,7 +124,7 @@ Enhanced version of Ruby's `String`. [[API doc](http://www.rubydoc.info/gems/han
|
|
133
124
|
|
134
125
|
## Versioning
|
135
126
|
|
136
|
-
|
127
|
+
**Hanami::Utils** uses [Semantic Versioning 2.0.0](http://semver.org)
|
137
128
|
|
138
129
|
## Contributing
|
139
130
|
|
data/hanami-utils.gemspec
CHANGED
@@ -16,7 +16,6 @@ Gem::Specification.new do |spec|
|
|
16
16
|
|
17
17
|
spec.files = `git ls-files -- lib/* CHANGELOG.md LICENSE.md README.md hanami-utils.gemspec`.split($/)
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
19
|
spec.require_paths = ["lib"]
|
21
20
|
spec.metadata["rubygems_mfa_required"] = "true"
|
22
21
|
spec.required_ruby_version = ">= 3.0"
|
data/lib/hanami/utils/string.rb
CHANGED
@@ -231,7 +231,7 @@ module Hanami
|
|
231
231
|
string.gsub!(NAMESPACE_SEPARATOR, UNDERSCORE_SEPARATOR)
|
232
232
|
string.gsub!(/([A-Z\d]+)([A-Z][a-z])/, UNDERSCORE_DIVISION_TARGET)
|
233
233
|
string.gsub!(/([a-z\d])([A-Z])/, UNDERSCORE_DIVISION_TARGET)
|
234
|
-
string.gsub!(/[[:space:]]
|
234
|
+
string.gsub!(/[[:space:]]|-|\./, UNDERSCORE_DIVISION_TARGET)
|
235
235
|
string.downcase
|
236
236
|
end
|
237
237
|
|