hanami-utils 2.3.0 → 3.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.
data/CHANGELOG.md CHANGED
@@ -1,662 +1,839 @@
1
- # Hanami::Utils
1
+ # Changelog
2
2
 
3
- Ruby core extensions and class utilities for Hanami
3
+ All notable changes to this project will be documented in this file.
4
4
 
5
- ## v2.3.0 - 2025-11-12
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Break Versioning](https://www.taoensso.com/break-versioning).
6
7
 
7
- ## v2.3.0.beta2 - 2025-10-17
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ ### Changed
13
+
14
+ ### Deprecated
15
+
16
+ ### Removed
17
+
18
+ ### Fixed
19
+
20
+ ### Security
21
+
22
+ [Unreleased]: https://github.com/hanami/hanami-utils/compare/v2.3.0...main
23
+
24
+ ## [3.0.0.rc1] - 2026-06-16
25
+
26
+ ### Changed
27
+
28
+ - Require Ruby 3.3 or newer.
29
+
30
+ [3.0.0.rc1]: https://github.com/hanami/hanami-utils/compare/v2.3.0...v3.0.0.rc1
31
+
32
+ ## [2.3.0] - 2025-11-12
33
+
34
+ [2.3.0]: https://github.com/hanami/hanami-utils/compare/v2.3.0.beta2...v2.3.0
35
+
36
+ ## [2.3.0.beta2] - 2025-10-17
8
37
 
9
38
  ### Changed
10
39
 
11
40
  - Drop support for Ruby 3.1
12
41
 
13
- ## v2.3.0.beta1 - 2025-10-03
42
+ [2.3.0.beta2]: https://github.com/hanami/hanami-utils/compare/v2.3.0.beta1...v2.3.0.beta2
43
+
44
+ ## [2.3.0.beta1] - 2025-10-03
45
+
46
+ [2.3.0.beta1]: https://github.com/hanami/hanami-utils/compare/v2.2.0...v2.3.0.beta1
47
+
48
+ ## [2.2.0] - 2024-11-05
49
+
50
+ [2.2.0]: https://github.com/hanami/hanami-utils/compare/v2.2.0.rc1...v2.2.0
51
+
52
+ ## [2.2.0.rc1] - 2024-10-29
14
53
 
15
- ## v2.2.0 - 2024-11-05
54
+ [2.2.0.rc1]: https://github.com/hanami/hanami-utils/compare/v2.2.0.beta2...v2.2.0.rc1
16
55
 
17
- ## v2.2.0.rc1 - 2024-10-29
56
+ ## [2.2.0.beta2] - 2024-09-25
18
57
 
19
- ## v2.2.0.beta2 - 2024-09-25
58
+ [2.2.0.beta2]: https://github.com/hanami/hanami-utils/compare/v2.2.0.beta1...v2.2.0.beta2
20
59
 
21
- ## v2.2.0.beta1 - 2024-07-16
60
+ ## [2.2.0.beta1] - 2024-07-16
22
61
 
23
62
  ### Changed
24
63
 
25
64
  - Drop support for Ruby 3.0
26
65
 
27
- ## v2.1.0 - 2024-02-27
66
+ [2.2.0.beta1]: https://github.com/hanami/hanami-utils/compare/v2.1.0...v2.2.0.beta1
28
67
 
29
- ## v2.1.0.rc3 - 2024-02-16
68
+ ## [2.1.0] - 2024-02-27
30
69
 
31
- ## v2.1.0.rc2 - 2023-11-08
70
+ [2.1.0]: https://github.com/hanami/hanami-utils/compare/v2.1.0.rc3...v2.1.0
32
71
 
33
- ## v2.1.0.beta1 - 2023-06-29
72
+ ## [2.1.0.rc3] - 2024-02-16
73
+
74
+ [2.1.0.rc3]: https://github.com/hanami/hanami-utils/compare/v2.1.0.rc2...v2.1.0.rc3
75
+
76
+ ## [2.1.0.rc2] - 2023-11-08
77
+
78
+ [2.1.0.rc2]: https://github.com/hanami/hanami-utils/compare/v2.1.0.beta1...v2.1.0.rc2
79
+
80
+ ## [2.1.0.beta1] - 2023-06-29
34
81
 
35
82
  ### Changed
36
83
 
37
- - [Tim Riley] Remove `Hanami::Utils::Escape` (which was not public as of 2.0.0) (#410)
84
+ - Remove `Hanami::Utils::Escape` (which was not public as of 2.0.0). (Tim Riley in #410)
85
+
86
+ [2.1.0.beta1]: https://github.com/hanami/hanami-utils/compare/v2.0.3...v2.1.0.beta1
38
87
 
39
- ## v2.0.3 - 2023-02-01
88
+ ## [2.0.3] - 2023-02-01
40
89
 
41
90
  ### Fixed
42
91
 
43
- - [hi-tech-jazz] `Hanami::Utils::Blank.blank?` to check if the current object is non-nil
92
+ - `Hanami::Utils::Blank.blank?` to check if the current object is non-nil. (hi-tech-jazz)
93
+
94
+ [2.0.3]: https://github.com/hanami/hanami-utils/compare/v2.0.2...v2.0.3
44
95
 
45
- ## v2.0.2 - 2022-12-25
96
+ ## [2.0.2] - 2022-12-25
46
97
 
47
98
  ### Added
48
99
 
49
- - [Luca Guidi] Official support for Ruby 3.2
100
+ - Official support for Ruby 3.2. (Luca Guidi)
50
101
 
51
- ## v2.0.1 - 2022-12-06
102
+ [2.0.2]: https://github.com/hanami/hanami-utils/compare/v2.0.1...v2.0.2
103
+
104
+ ## [2.0.1] - 2022-12-06
52
105
 
53
106
  ### Fixed
54
107
 
55
- - [Tim Riley] Make `Hanami::Utils::Callbacks::Chain` and `Hanami::Utils::Callbacks::Callback` comparable via `#==` based on their contents, rather than their object identity
108
+ - Make `Hanami::Utils::Callbacks::Chain` and `Hanami::Utils::Callbacks::Callback` comparable via `#==` based on their contents, rather than their object identity. (Tim Riley)
109
+
110
+ [2.0.1]: https://github.com/hanami/hanami-utils/compare/v2.0.0...v2.0.1
111
+
112
+ ## [2.0.0] - 2022-11-22
56
113
 
57
- ## v2.0.0 - 2022-11-22
114
+ [2.0.0]: https://github.com/hanami/hanami-utils/compare/v2.0.0.rc1...v2.0.0
58
115
 
59
- ## v2.0.0.rc1 - 2022-11-08
116
+ ## [2.0.0.rc1] - 2022-11-08
60
117
 
61
118
  ### Fixed
62
119
 
63
- - [Benjamin Klotz] Ensure `Hanami::Utils::String.underscore` to replace `"."` (dot character) into underscore
120
+ - Ensure `Hanami::Utils::String.underscore` to replace `"."` (dot character) into underscore. (Benjamin Klotz)
64
121
 
65
122
  ### Changed
66
123
 
67
- - [Luca Guidi] Removed `Hanami::Logger` in favor of `Dry::Logger`
124
+ - Removed `Hanami::Logger` in favor of `Dry::Logger`. (Luca Guidi)
68
125
 
69
- ## v2.0.0.beta1 - 2022-07-20
126
+ [2.0.0.rc1]: https://github.com/hanami/hanami-utils/compare/v2.0.0.beta1...v2.0.0.rc1
127
+
128
+ ## [2.0.0.beta1] - 2022-07-20
70
129
 
71
130
  ### Changed
72
131
 
73
- - [Luca Guidi] Removed `Hanami::Utils::BasicObject` (moved to `dry-core` as `Dry::Core::BasicObject`)
74
- - [Luca Guidi] Removed `Hanami::Interactor`
132
+ - Removed `Hanami::Utils::BasicObject` (moved to `dry-core` as `Dry::Core::BasicObject`). (Luca Guidi)
133
+ - Removed `Hanami::Interactor`. (Luca Guidi)
134
+
135
+ [2.0.0.beta1]: https://github.com/hanami/hanami-utils/compare/v2.0.0.alpha6...v2.0.0.beta1
75
136
 
76
- ## v2.0.0.alpha6 - 2022-02-10
137
+ ## [2.0.0.alpha6] - 2022-02-10
77
138
 
78
139
  ### Added
79
140
 
80
- - [Luca Guidi] Official support for Ruby: MRI 3.0 and 3.1
141
+ - Official support for Ruby: MRI 3.0 and 3.1. (Luca Guidi)
81
142
 
82
143
  ### Fixed
83
144
 
84
- - [Rob Jacoby] Allow `Hanami::Logger#initialize` to accept `File::NULL` as `stream:` argument
145
+ - Allow `Hanami::Logger#initialize` to accept `File::NULL` as `stream:` argument. (Rob Jacoby)
85
146
 
86
147
  ### Changed
87
148
 
88
- - [Luca Guidi] Drop support for Ruby: MRI 2.6 and 2.7.
149
+ - Drop support for Ruby: MRI 2.6 and 2.7. (Luca Guidi)
150
+
151
+ [2.0.0.alpha6]: https://github.com/hanami/hanami-utils/compare/v2.0.0.alpha3...v2.0.0.alpha6
89
152
 
90
- ## v2.0.0.alpha3 - 2021-11-09
153
+ ## [2.0.0.alpha3] - 2021-11-09
91
154
 
92
155
  No changes.
93
156
 
94
- ## v2.0.0.alpha2 - 2021-05-04
157
+ [2.0.0.alpha3]: https://github.com/hanami/hanami-utils/compare/v2.0.0.alpha2...v2.0.0.alpha3
158
+
159
+ ## [2.0.0.alpha2] - 2021-05-04
95
160
 
96
161
  ### Changed
97
162
 
98
- - [Luca Guidi] Drop support for Ruby: MRI 2.5.
99
- - [Luca Guidi] Transform `Utils::String` from class to module
163
+ - Drop support for Ruby: MRI 2.5. (Luca Guidi)
164
+ - Transform `Utils::String` from class to module. (Luca Guidi)
165
+
166
+ [2.0.0.alpha2]: https://github.com/hanami/hanami-utils/compare/v2.0.0.alpha1...v2.0.0.alpha2
100
167
 
101
- ## v2.0.0.alpha1 - 2019-01-30
168
+ ## [2.0.0.alpha1] - 2019-01-30
102
169
 
103
170
  ### Added
104
171
 
105
- - [Gustavo Caso] Introduce `Hanami::Middleware` namespace
106
- - [Luca Guidi] Introduce `Callbacks::Chain#dup`
172
+ - Introduce `Hanami::Middleware` namespace. (Gustavo Caso)
173
+ - Introduce `Callbacks::Chain#dup`. (Luca Guidi)
107
174
 
108
175
  ### Changed
109
176
 
110
- - [Luca Guidi] Drop support for Ruby: MRI 2.3, and 2.4.
111
- - [Luca Guidi] Remove `Utils::Duplicable`
112
- - [Luca Guidi] Remove `Utils::Inflector`
113
- - [Luca Guidi] Remove `Utils::String.singularize`, and `.pluralize`
114
- - [Luca Guidi] Remove `Utils::String#singularize`, and `#pluralize`
115
- - [Luca Guidi] Remove instance level interface for `Utils::Hash`
116
- - [Luca Guidi] Transform `Utils::Hash` from class to module
117
- - [Luca Guidi] Remove `Utils.reload!`
118
- - [Gustavo Caso] Remove `Utils::File.rewrite`
119
- - [Vladimir Suvorov] Remove `Utils::Class.load_from_pattern!`
177
+ - Drop support for Ruby: MRI 2.3, and 2.4. (Luca Guidi)
178
+ - Remove `Utils::Duplicable`. (Luca Guidi)
179
+ - Remove `Utils::Inflector`. (Luca Guidi)
180
+ - Remove `Utils::String.singularize`, and `.pluralize`. (Luca Guidi)
181
+ - Remove `Utils::String#singularize`, and `#pluralize`. (Luca Guidi)
182
+ - Remove instance level interface for `Utils::Hash`. (Luca Guidi)
183
+ - Transform `Utils::Hash` from class to module. (Luca Guidi)
184
+ - Remove `Utils.reload!`. (Luca Guidi)
185
+ - Remove `Utils::File.rewrite`. (Gustavo Caso)
186
+ - Remove `Utils::Class.load_from_pattern!`. (Vladimir Suvorov)
187
+
188
+ [2.0.0.alpha1]: https://github.com/hanami/hanami-utils/compare/v1.3.8...v2.0.0.alpha1
120
189
 
121
- ## v1.3.8 - 2021-05-03
190
+ ## [1.3.8] - 2021-05-03
122
191
 
123
192
  ### Fixed
124
193
 
125
- - [Hiếu Nguyễn] Ensure `Hanami::Interactor#initialize` to accept keyword arguments while working with Ruby 3
194
+ - Ensure `Hanami::Interactor#initialize` to accept keyword arguments while working with Ruby 3. (Hiếu Nguyễn)
126
195
 
127
- ## v1.3.7 - 2021-01-04
196
+ [1.3.8]: https://github.com/hanami/hanami-utils/compare/v1.3.7...v1.3.8
197
+
198
+ ## [1.3.7] - 2021-01-04
128
199
 
129
200
  ### Added
130
201
 
131
- - [Luca Guidi] Official support for Ruby: MRI 3.0
132
- - [Khai Le] Allow `Hanami::Logger` to filter sensitive data for an array of hashes
202
+ - Official support for Ruby: MRI 3.0. (Luca Guidi)
203
+ - Allow `Hanami::Logger` to filter sensitive data for an array of hashes. (Khai Le)
133
204
 
134
205
  ### Fixed
135
206
 
136
- - [Hiếu Nguyễn] Ensure `Hanami::Logger` to not mutate `Hash` input when filtering sensitive data
207
+ - Ensure `Hanami::Logger` to not mutate `Hash` input when filtering sensitive data. (Hiếu Nguyễn)
208
+
209
+ [1.3.7]: https://github.com/hanami/hanami-utils/compare/v1.3.6...v1.3.7
137
210
 
138
- ## v1.3.6 - 2020-01-07
211
+ ## [1.3.6] - 2020-01-07
139
212
 
140
213
  ### Added
141
214
 
142
- - [Luca Guidi] Official support for Ruby: MRI 2.7
215
+ - Official support for Ruby: MRI 2.7. (Luca Guidi)
143
216
 
144
217
  ### Fixed
145
218
 
146
- - [ippachi] `Utils::Files.append`: don't check breakline if file is empty
219
+ - `Utils::Files.append`: don't check breakline if file is empty. (ippachi)
220
+
221
+ [1.3.6]: https://github.com/hanami/hanami-utils/compare/v1.3.5...v1.3.6
147
222
 
148
- ## v1.3.5 - 2019-10-25
223
+ ## [1.3.5] - 2019-10-25
149
224
 
150
225
  ### Fixed
151
226
 
152
- - [Ivan Kabluchkov] Ensure `Hanami::Logger` filters to not crash when logger stream is a closed tempfile
153
- - [Luca Guidi] Ensure `Utils::Files.append` to append contents properly when existing file doesn't end with a newline
227
+ - Ensure `Hanami::Logger` filters to not crash when logger stream is a closed tempfile. (Ivan Kabluchkov)
228
+ - Ensure `Utils::Files.append` to append contents properly when existing file doesn't end with a newline. (Luca Guidi)
154
229
 
155
- ## v1.3.4 - 2019-09-27
230
+ [1.3.5]: https://github.com/hanami/hanami-utils/compare/v1.3.4...v1.3.5
231
+
232
+ ## [1.3.4] - 2019-09-27
156
233
 
157
234
  ### Added
158
235
 
159
- - [Luca Guidi] Let `Utils::BasicObject` to lookup constants at the top-level namespace
236
+ - Let `Utils::BasicObject` to lookup constants at the top-level namespace. (Luca Guidi)
237
+
238
+ [1.3.4]: https://github.com/hanami/hanami-utils/compare/v1.3.3...v1.3.4
160
239
 
161
- ## v1.3.3 - 2019-09-13
240
+ ## [1.3.3] - 2019-09-13
162
241
 
163
242
  ### Fixed
164
243
 
165
- - [Mauro Morales] Ensure `Utils::Inflector.pluralize` and `.singularize` to work with words that contain an underscore (`_`)
244
+ - Ensure `Utils::Inflector.pluralize` and `.singularize` to work with words that contain an underscore (`_`). (Mauro Morales)
245
+
246
+ [1.3.3]: https://github.com/hanami/hanami-utils/compare/v1.3.2...v1.3.3
166
247
 
167
- ## v1.3.2 - 2019-06-21
248
+ ## [1.3.2] - 2019-06-21
168
249
 
169
250
  ### Added
170
251
 
171
- - [Vladislav Yashin & Luca Guidi] Added `Utils::BasicObject#instance_of?`, `#is_a?`, and `#kind_of`
252
+ - Added `Utils::BasicObject#instance_of?`, `#is_a?`, and `#kind_of`. (Vladislav Yashin & Luca Guidi)
172
253
 
173
- ## v1.3.1 - 2019-01-18
254
+ [1.3.2]: https://github.com/hanami/hanami-utils/compare/v1.3.1...v1.3.2
255
+
256
+ ## [1.3.1] - 2019-01-18
174
257
 
175
258
  ### Added
176
259
 
177
- - [Luca Guidi] Official support for Ruby: MRI 2.6
178
- - [Luca Guidi] Support `bundler` 2.0+
260
+ - Official support for Ruby: MRI 2.6. (Luca Guidi)
261
+ - Support `bundler` 2.0+. (Luca Guidi)
179
262
 
180
263
  ### Fixed
181
264
 
182
- - [Alfonso Uceda] Fix `Hash` serialization for `Utils::Logger`
183
- - [Jeff Dickey] Add missing `pathname` require in `lib/hanami/utils.rb`
265
+ - Fix `Hash` serialization for `Utils::Logger`. (Alfonso Uceda)
266
+ - Add missing `pathname` require in `lib/hanami/utils.rb`. (Jeff Dickey)
267
+
268
+ [1.3.1]: https://github.com/hanami/hanami-utils/compare/v1.3.0...v1.3.1
184
269
 
185
- ## v1.3.0 - 2018-10-24
270
+ ## [1.3.0] - 2018-10-24
186
271
 
187
- ## v1.3.0.beta1 - 2018-08-08
272
+ [1.3.0]: https://github.com/hanami/hanami-utils/compare/v1.3.0.beta1...v1.3.0
273
+
274
+ ## [1.3.0.beta1] - 2018-08-08
188
275
 
189
276
  ### Added
190
277
 
191
- - [Luca Guidi] Official support for JRuby 9.2.0.0
192
- - [graywolf] Add `Utils::Files.inject_line_before_last` and `.inject_line_after_last`
278
+ - Official support for JRuby 9.2.0.0. (Luca Guidi)
279
+ - Add `Utils::Files.inject_line_before_last` and `.inject_line_after_last`. (graywolf)
193
280
 
194
281
  ### Fixed
195
282
 
196
- - [graywolf] Don't show `Fixnum` Ruby warning for 2.4+
197
- - [Luca Guidi] Fix pluralization of `"fee"`
283
+ - Don't show `Fixnum` Ruby warning for 2.4+. (graywolf)
284
+ - Fix pluralization of `"fee"`. (Luca Guidi)
198
285
 
199
286
  ### Deprecated
200
287
 
201
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::String` as Ruby type. Please use `Utils::String` class methods instead of `Utils::String.new("")`.
202
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::Hash` as Ruby type. Please use `Utils::Hash` class methods instead of `Utils::Hash.new({})`.
203
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::String.pluralize` and `.singularize`.
204
- - [Semyon Pupkov] Deprecate `Utils::Class.load_from_pattern!`
288
+ - Deprecate `Utils::String` as Ruby type. Please use `Utils::String` class methods instead of `Utils::String.new("")`. (Luca Guidi & Marion Schleifer)
289
+ - Deprecate `Utils::Hash` as Ruby type. Please use `Utils::Hash` class methods instead of `Utils::Hash.new({})`. (Luca Guidi & Marion Schleifer)
290
+ - Deprecate `Utils::String.pluralize` and `.singularize`. (Luca Guidi & Marion Schleifer)
291
+ - Deprecate `Utils::Class.load_from_pattern!`. (Semyon Pupkov)
292
+
293
+ [1.3.0.beta1]: https://github.com/hanami/hanami-utils/compare/v1.2.0...v1.3.0.beta1
294
+
295
+ ## [1.2.0] - 2018-04-11
205
296
 
206
- ## v1.2.0 - 2018-04-11
297
+ [1.2.0]: https://github.com/hanami/hanami-utils/compare/v1.2.0.rc2...v1.2.0
207
298
 
208
- ## v1.2.0.rc2 - 2018-04-06
299
+ ## [1.2.0.rc2] - 2018-04-06
209
300
 
210
301
  ### Added
211
302
 
212
- - [Luca Guidi] Use different colors for each `Hanami::Logger` level
303
+ - Use different colors for each `Hanami::Logger` level. (Luca Guidi)
213
304
 
214
- ## v1.2.0.rc1 - 2018-03-30
305
+ [1.2.0.rc2]: https://github.com/hanami/hanami-utils/compare/v1.2.0.rc1...v1.2.0.rc2
306
+
307
+ ## [1.2.0.rc1] - 2018-03-30
215
308
 
216
309
  ### Added
217
310
 
218
- - [Oana Sipos & Sean Collins & Luca Guidi] Colored logging
311
+ - Colored logging. (Oana Sipos & Sean Collins & Luca Guidi)
219
312
 
220
313
  ### Fixed
221
314
 
222
- - [Luca Guidi] Make `Hanami::Logger` to properly log hash messages
315
+ - Make `Hanami::Logger` to properly log hash messages. (Luca Guidi)
316
+
317
+ [1.2.0.rc1]: https://github.com/hanami/hanami-utils/compare/v1.2.0.beta2...v1.2.0.rc1
318
+
319
+ ## [1.2.0.beta2] - 2018-03-23
223
320
 
224
- ## v1.2.0.beta2 - 2018-03-23
321
+ [1.2.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.2.0.beta1...v1.2.0.beta2
225
322
 
226
- ## v1.2.0.beta1 - 2018-02-28
323
+ ## [1.2.0.beta1] - 2018-02-28
227
324
 
228
- ## v1.1.2 - 2018-02-02
325
+ [1.2.0.beta1]: https://github.com/hanami/hanami-utils/compare/v1.1.2...v1.2.0.beta1
326
+
327
+ ## [1.1.2] - 2018-02-02
229
328
 
230
329
  ### Added
231
330
 
232
- - [Luca Guidi] Official support for Ruby: MRI 2.5
331
+ - Official support for Ruby: MRI 2.5. (Luca Guidi)
233
332
 
234
333
  ### Fixed
235
334
 
236
- - [Sean Collins & Luca Guidi] Make `Utils::Files.write` idempotent: ensure to truncate the file before to write
237
- - [Sean Collins & Luca Guidi] Don't erase file contents when invoking `Utils::Files.touch`
335
+ - Make `Utils::Files.write` idempotent: ensure to truncate the file before to write. (Sean Collins & Luca Guidi)
336
+ - Don't erase file contents when invoking `Utils::Files.touch`. (Sean Collins & Luca Guidi)
238
337
 
239
338
  ### Changed
240
339
 
241
- - [Sean Collins & Luca Guidi] Deprecate `Utils::Files.rewrite` in favor of `.write`
340
+ - Deprecate `Utils::Files.rewrite` in favor of `.write`. (Sean Collins & Luca Guidi)
341
+
342
+ [1.1.2]: https://github.com/hanami/hanami-utils/compare/v1.1.1...v1.1.2
242
343
 
243
- ## v1.1.1 - 2017-11-22
344
+ ## [1.1.1] - 2017-11-22
244
345
 
245
346
  ### Added
246
347
 
247
- - [Luca Guidi] Introduce `Utils::Hash.deep_stringify` to recursively stringify a hash
348
+ - Introduce `Utils::Hash.deep_stringify` to recursively stringify a hash. (Luca Guidi)
248
349
 
249
350
  ### Fixed
250
351
 
251
- - [Yuta Tokitake] Ensure `Interactor#call` to accept non-keyword arguments
352
+ - Ensure `Interactor#call` to accept non-keyword arguments. (Yuta Tokitake)
353
+
354
+ [1.1.1]: https://github.com/hanami/hanami-utils/compare/v1.1.0...v1.1.1
252
355
 
253
- ## v1.1.0 - 2017-10-25
356
+ ## [1.1.0] - 2017-10-25
254
357
 
255
358
  ### Added
256
359
 
257
- - [Luca Guidi] Introduce `Utils::Hash.deep_serialize` to recursively serialize input into `::Hash`
360
+ - Introduce `Utils::Hash.deep_serialize` to recursively serialize input into `::Hash`. (Luca Guidi)
361
+
362
+ [1.1.0]: https://github.com/hanami/hanami-utils/compare/v1.1.0.rc1...v1.1.0
363
+
364
+ ## [1.1.0.rc1] - 2017-10-16
365
+
366
+ [1.1.0.rc1]: https://github.com/hanami/hanami-utils/compare/v1.1.0.beta3...v1.1.0.rc1
258
367
 
259
- ## v1.1.0.rc1 - 2017-10-16
368
+ ## [1.1.0.beta3] - 2017-10-04
260
369
 
261
- ## v1.1.0.beta3 - 2017-10-04
370
+ [1.1.0.beta3]: https://github.com/hanami/hanami-utils/compare/v1.1.0.beta2...v1.1.0.beta3
262
371
 
263
- ## v1.1.0.beta2 - 2017-10-03
372
+ ## [1.1.0.beta2] - 2017-10-03
264
373
 
265
374
  ### Added
266
375
 
267
- - [Alfonso Uceda] Auto create directory for `Hanami::Logger`
376
+ - Auto create directory for `Hanami::Logger`. (Alfonso Uceda)
268
377
 
269
- ## v1.1.0.beta1 - 2017-08-11
378
+ [1.1.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.1.0.beta1...v1.1.0.beta2
379
+
380
+ ## [1.1.0.beta1] - 2017-08-11
270
381
 
271
382
  ### Added
272
383
 
273
- - [Marion Duprey] Allow `Hanami::Interactor#call` to accept arguments. `#initialize` should be used for Dependency Injection, while `#call` should be used for input
274
- - [Marion Schleifer] Introduce `Utils::Hash.stringify`
275
- - [Marion Schleifer] Introduce `Utils::String.titleize`, `.capitalize`, `.classify`, `.underscore`, `.dasherize`, `.demodulize`, `.namespace`, `.pluralize`, `.singularize`, and `.rsub`
276
- - [Luca Guidi] Introduce `Utils::Files`: a set of utils for file manipulations
277
- - [Luca Guidi] Introduce `Utils::String.transform` a pipelined transformations for strings
278
- - [Marion Duprey & Gabriel Gizotti] Filter sensitive informations for `Hanami::Logger`
384
+ - Allow `Hanami::Interactor#call` to accept arguments. `#initialize` should be used for Dependency Injection, while `#call` should be used for input. (Marion Duprey)
385
+ - Introduce `Utils::Hash.stringify`. (Marion Schleifer)
386
+ - Introduce `Utils::String.titleize`, `.capitalize`, `.classify`, `.underscore`, `.dasherize`, `.demodulize`, `.namespace`, `.pluralize`, `.singularize`, and `.rsub`. (Marion Schleifer)
387
+ - Introduce `Utils::Files`: a set of utils for file manipulations. (Luca Guidi)
388
+ - Introduce `Utils::String.transform` a pipelined transformations for strings. (Luca Guidi)
389
+ - Filter sensitive informations for `Hanami::Logger`. (Marion Duprey & Gabriel Gizotti)
390
+
391
+ [1.1.0.beta1]: https://github.com/hanami/hanami-utils/compare/v1.0.4...v1.1.0.beta1
279
392
 
280
- ## v1.0.4 - 2017-10-02
393
+ ## [1.0.4] - 2017-10-02
281
394
 
282
395
  ### Fixed
283
396
 
284
- - [Luca Guidi] Make `Hanami::Utils::BasicObject` to be fully compatible with Ruby's `pp` and to be inspected by Pry.
285
- - [Thiago Kenji Okada] Fix pluralization/singularization for `"release" => "releases"`
397
+ - Make `Hanami::Utils::BasicObject` to be fully compatible with Ruby's `pp` and to be inspected by Pry. (Luca Guidi)
398
+ - Fix pluralization/singularization for `"release" => "releases"`. (Thiago Kenji Okada)
399
+
400
+ [1.0.4]: https://github.com/hanami/hanami-utils/compare/v1.0.3...v1.0.4
286
401
 
287
- ## v1.0.3 - 2017-09-06
402
+ ## [1.0.3] - 2017-09-06
288
403
 
289
404
  ### Fixed
290
405
 
291
- - [Malina Sulca] Fix pluralization/singularization for `"exercise" => "exercises"`
292
- - [Xavier Barbosa] Fix pluralization/singularization for `"area" => "areas"`
406
+ - Fix pluralization/singularization for `"exercise" => "exercises"`. (Malina Sulca)
407
+ - Fix pluralization/singularization for `"area" => "areas"`. (Xavier Barbosa)
293
408
 
294
- ## v1.0.2 - 2017-07-10
409
+ [1.0.3]: https://github.com/hanami/hanami-utils/compare/v1.0.2...v1.0.3
410
+
411
+ ## [1.0.2] - 2017-07-10
295
412
 
296
413
  ### Fixed
297
414
 
298
- - [Anton Davydov] Fix pluralization/singularization for `"phrase" => "phrases"`
415
+ - Fix pluralization/singularization for `"phrase" => "phrases"`. (Anton Davydov)
416
+
417
+ [1.0.2]: https://github.com/hanami/hanami-utils/compare/v1.0.1...v1.0.2
299
418
 
300
- ## v1.0.1 - 2017-06-23
419
+ ## [1.0.1] - 2017-06-23
301
420
 
302
421
  ### Added
303
422
 
304
- - [Luca Guidi] Introduced `Utils::Hash.symbolize` and `.deep_symbolize`
305
- - [Luca Guidi] Introduced `Utils::Hash.deep_dup`
423
+ - Introduced `Utils::Hash.symbolize` and `.deep_symbolize`. (Luca Guidi)
424
+ - Introduced `Utils::Hash.deep_dup`. (Luca Guidi)
306
425
 
307
426
  ### Fixed
308
427
 
309
- - [choallin] Ensure `Utils::String#classify` to return output identical to the input for already classified strings.
310
- - [Marion Duprey & Jonas Amundsen] Ensure `Utils::Hash#initialize` to accept frozen `Hash` as argument.
428
+ - Ensure `Utils::String#classify` to return output identical to the input for already classified strings. (choallin)
429
+ - Ensure `Utils::Hash#initialize` to accept frozen `Hash` as argument. (Marion Duprey & Jonas Amundsen)
430
+
431
+ [1.0.1]: https://github.com/hanami/hanami-utils/compare/v1.0.0...v1.0.1
311
432
 
312
- ## v1.0.0 - 2017-04-06
433
+ ## [1.0.0] - 2017-04-06
313
434
 
314
- ## v1.0.0.rc1 - 2017-03-31
435
+ [1.0.0]: https://github.com/hanami/hanami-utils/compare/v1.0.0.rc1...v1.0.0
436
+
437
+ ## [1.0.0.rc1] - 2017-03-31
315
438
 
316
439
  ### Added
317
440
 
318
- - [Luca Guidi] Allow `Hanami::Logger#initialize` to accept arguments to be compliant with Ruby's `Logger`
441
+ - Allow `Hanami::Logger#initialize` to accept arguments to be compliant with Ruby's `Logger`. (Luca Guidi)
442
+
443
+ [1.0.0.rc1]: https://github.com/hanami/hanami-utils/compare/v1.0.0.beta3...v1.0.0.rc1
319
444
 
320
- ## v1.0.0.beta3 - 2017-03-17
445
+ ## [1.0.0.beta3] - 2017-03-17
321
446
 
322
447
  ### Fixed
323
448
 
324
- - [Luca Guidi] Use `$stdout` instead of `STDOUT` as default stream for `Hanami::Logger`
449
+ - Use `$stdout` instead of `STDOUT` as default stream for `Hanami::Logger`. (Luca Guidi)
325
450
 
326
451
  ### Changed
327
452
 
328
- - [Luca Guidi] Removed `Utils::Attributes`
329
- - [Luca Guidi] Removed deprecated `Hanami::Interactor::Result#failing?`
330
- - [Luca Guidi] Removed deprecated `Utils::Json.load` and `.dump`
453
+ - Removed `Utils::Attributes`. (Luca Guidi)
454
+ - Removed deprecated `Hanami::Interactor::Result#failing?`. (Luca Guidi)
455
+ - Removed deprecated `Utils::Json.load` and `.dump`. (Luca Guidi)
456
+
457
+ [1.0.0.beta3]: https://github.com/hanami/hanami-utils/compare/v1.0.0.beta2...v1.0.0.beta3
331
458
 
332
- ## v1.0.0.beta2 - 2017-03-02
459
+ ## [1.0.0.beta2] - 2017-03-02
333
460
 
334
461
  ### Changed
335
462
 
336
- - [Anton Davydov] Made `Utils::Blank` private API
463
+ - Made `Utils::Blank` private API. (Anton Davydov)
337
464
 
338
- ## v1.0.0.beta1 - 2017-02-14
465
+ [1.0.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.0.0.beta1...v1.0.0.beta2
466
+
467
+ ## [1.0.0.beta1] - 2017-02-14
339
468
 
340
469
  ### Added
341
470
 
342
- - [Luca Guidi] Official support for Ruby: MRI 2.4
343
- - [alexd16] Introduced `Utils::Hash#deep_symbolize!` for deep symbolization
344
- - [Luca Guidi] Introduced `Hanami::Utils.reload!` as a mechanism to force code reloading in development
471
+ - Official support for Ruby: MRI 2.4. (Luca Guidi)
472
+ - Introduced `Utils::Hash#deep_symbolize!` for deep symbolization. (alexd16)
473
+ - Introduced `Hanami::Utils.reload!` as a mechanism to force code reloading in development. (Luca Guidi)
345
474
 
346
475
  ### Fixed
347
476
 
348
- - [alexd16 & Alfonso Uceda & Luca Guidi] Don't deeply symbolize `Hanami::Interactor::Result` payload
349
- - [Alfonso Uceda] `Hanami::Interactor::Result`: Don't transform objects that respond to `#to_hash` (like entities)
350
- - [Bhanu Prakash] Use `Utils::Json.generate` instead of the deprecated `.dump` for `Hanami::Logger` JSON formatter
351
- - [Luca Guidi] `Hanami::Logger`: when a `Hash` message is passed, don't nest it under `:message` key, but unwrap at the top level
477
+ - Don't deeply symbolize `Hanami::Interactor::Result` payload. (alexd16 & Alfonso Uceda & Luca Guidi)
478
+ - `Hanami::Interactor::Result`: Don't transform objects that respond to `#to_hash` (like entities). (Alfonso Uceda)
479
+ - Use `Utils::Json.generate` instead of the deprecated `.dump` for `Hanami::Logger` JSON formatter. (Bhanu Prakash)
480
+ - `Hanami::Logger`: when a `Hash` message is passed, don't nest it under `:message` key, but unwrap at the top level. (Luca Guidi)
352
481
 
353
482
  ### Changed
354
483
 
355
- - [alexd16] `Utils::Hash#symbolize!` no longer symbolizes deep structures
356
- - [Luca Guidi & Alfonso Uceda] Improve readability for default logger formatter
357
- - [Luca Guidi] Use ISO-8601 time format for JSON logger formatter
484
+ - `Utils::Hash#symbolize!` no longer symbolizes deep structures. (alexd16)
485
+ - Improve readability for default logger formatter. (Luca Guidi & Alfonso Uceda)
486
+ - Use ISO-8601 time format for JSON logger formatter. (Luca Guidi)
487
+
488
+ [1.0.0.beta1]: https://github.com/hanami/hanami-utils/compare/v0.9.2...v1.0.0.beta1
358
489
 
359
- ## v0.9.2 - 2016-12-19
490
+ ## [0.9.2] - 2016-12-19
360
491
 
361
492
  ### Added
362
493
 
363
- - [Grachev Mikhail] Introduced `Hanami::Interactor::Result#failure?`
494
+ - Introduced `Hanami::Interactor::Result#failure?`. (Grachev Mikhail)
364
495
 
365
496
  ### Fixed
366
497
 
367
- - [Paweł Świątkowski] `Utils::Inflector.pluralize` Pluralize -en to -ens instead of -ina
498
+ - `Utils::Inflector.pluralize` Pluralize -en to -ens instead of -ina. (Paweł Świątkowski)
368
499
 
369
500
  ### Changed
370
501
 
371
- - [Grachev Mikhail] Deprecate `Hanami::Interactor::Result#failing?` in favor of `#failure?`
502
+ - Deprecate `Hanami::Interactor::Result#failing?` in favor of `#failure?`. (Grachev Mikhail)
372
503
 
373
- ## v0.9.1 - 2016-11-18
504
+ [0.9.2]: https://github.com/hanami/hanami-utils/compare/v0.9.1...v0.9.2
505
+
506
+ ## [0.9.1] - 2016-11-18
374
507
 
375
508
  ### Added
376
509
 
377
- - [Luca Guidi] Introduced `Utils::Json.parse` and `.generate`
510
+ - Introduced `Utils::Json.parse` and `.generate`. (Luca Guidi)
378
511
 
379
512
  ### Fixed
380
513
 
381
- - [Luca Guidi] Ensure `Utils::Json` parsing to not eval untrusted input
514
+ - Ensure `Utils::Json` parsing to not eval untrusted input. (Luca Guidi)
382
515
 
383
516
  ### Changed
384
517
 
385
- - [Luca Guidi] Deprecated `Utils::Json.load` in favor of `.parse`
386
- - [Luca Guidi] Deprecated `Utils::Json.dump` in favor of `.generate`
518
+ - Deprecated `Utils::Json.load` in favor of `.parse`. (Luca Guidi)
519
+ - Deprecated `Utils::Json.dump` in favor of `.generate`. (Luca Guidi)
520
+
521
+ [0.9.1]: https://github.com/hanami/hanami-utils/compare/v0.9.0...v0.9.1
387
522
 
388
- ## v0.9.0 - 2016-11-15
523
+ ## [0.9.0] - 2016-11-15
389
524
 
390
525
  ### Added
391
526
 
392
- [Luca Guidi] Introduced `Utils.require!` to recursively require Ruby files with an order that is consistent across platforms
393
- [Luca Guidi] Introduced `Utils::FileList` as cross-platform ordered list of files, alternative to `Dir.glob`
527
+ - Introduced `Utils.require!` to recursively require Ruby files with an order that is consistent across platforms. (Luca Guidi)
528
+ - Introduced `Utils::FileList` as cross-platform ordered list of files, alternative to `Dir.glob`. (Luca Guidi)
394
529
 
395
- - [Luca Guidi] Make `Utils::BasicObject` pretty printable
396
- - [Grachev Mikhail] Added `Interactor::Result#successful?` and `#failing?`
530
+ - Make `Utils::BasicObject` pretty printable. (Luca Guidi)
531
+ - Added `Interactor::Result#successful?` and `#failing?`. (Grachev Mikhail)
397
532
 
398
533
  ### Fixed
399
534
 
400
- - [Pascal Betz] Ensure `Utils::Class.load!` to lookup constant only within the given namespace
535
+ - Ensure `Utils::Class.load!` to lookup constant only within the given namespace. (Pascal Betz)
401
536
 
402
537
  ### Changed
403
538
 
404
- - [Luca Guidi] Make `Utils::Hash` only compatible with objects that respond to `#to_hash`
405
- - [Luca Guidi] Official support for Ruby: MRI 2.3+ and JRuby 9.1.5.0+
539
+ - Make `Utils::Hash` only compatible with objects that respond to `#to_hash`. (Luca Guidi)
540
+ - Official support for Ruby: MRI 2.3+ and JRuby 9.1.5.0+. (Luca Guidi)
541
+
542
+ [0.9.0]: https://github.com/hanami/hanami-utils/compare/v0.8.0...v0.9.0
406
543
 
407
- ## v0.8.0 - 2016-07-22
544
+ ## [0.8.0] - 2016-07-22
408
545
 
409
546
  ### Added
410
547
 
411
- - [Andrey Morskov] Introduced `Hanami::Utils::Blank`
412
- - [Anton Davydov] Allow to specify a default log level for `Hanami::Logger`
413
- - [Anton Davydov] Introduced default and JSON formatters for `Hanami::Logger`
414
- - [Erol Fornoles] Allow deep indifferent access for `Hanami::Utils::Attributes`
415
- - [Anton Davydov] Introduced `Hanami::Utils::Json` which is a proxy for `MultiJson` (from `multi_json` gem), or fallback to `JSON` from Ruby standard library.
548
+ - Introduced `Hanami::Utils::Blank`. (Andrey Morskov)
549
+ - Allow to specify a default log level for `Hanami::Logger`. (Anton Davydov)
550
+ - Introduced default and JSON formatters for `Hanami::Logger`. (Anton Davydov)
551
+ - Allow deep indifferent access for `Hanami::Utils::Attributes`. (Erol Fornoles)
552
+ - Introduced `Hanami::Utils::Json` which is a proxy for `MultiJson` (from `multi_json` gem), or fallback to `JSON` from Ruby standard library. (Anton Davydov)
416
553
 
417
554
  ### Fixed
418
555
 
419
- - [Hiếu Nguyễn] Ensure `Hanami::Utils::String#classify` to return already classified strings as they are. Eg. `"AwesomeProject"` should return `"AwesomeProject"`, not `"Awesomeproject"`.
420
- - [TheSmartnik] Fix English pluralization for words ending with `"rses"`
421
- - [Rogério Ramos] Fix English pluralization for words ending with `"ice"`
556
+ - Ensure `Hanami::Utils::String#classify` to return already classified strings as they are. Eg. `"AwesomeProject"` should return `"AwesomeProject"`, not `"Awesomeproject"`. (Hiếu Nguyễn)
557
+ - Fix English pluralization for words ending with `"rses"`. (TheSmartnik)
558
+ - Fix English pluralization for words ending with `"ice"`. (Rogério Ramos)
422
559
 
423
560
  ### Changed
424
561
 
425
- - [Luca Guidi] Drop support for Ruby 2.0, 2.1 and Rubinius. Official support for JRuby 9.0.5.0+.
562
+ - Drop support for Ruby 2.0, 2.1 and Rubinius. Official support for JRuby 9.0.5.0+. (Luca Guidi)
426
563
 
427
- ## v0.7.1 - 2016-02-05
564
+ [0.8.0]: https://github.com/hanami/hanami-utils/compare/v0.7.1...v0.8.0
565
+
566
+ ## [0.7.1] - 2016-02-05
428
567
 
429
568
  ### Fixed
430
569
 
431
- - [Yuuji Yaginuma] `Hanami::Utils::Escape`: fixed Ruby warning for `String#chars` with a block, which is deprecated. Using `String#each_char` now.
432
- - [Sean Collins] Allow non string objects to be escaped by `Hanami::Utils::Escape`.
570
+ - `Hanami::Utils::Escape`: fixed Ruby warning for `String#chars` with a block, which is deprecated. Using `String#each_char` now. (Yuuji Yaginuma)
571
+ - Allow non string objects to be escaped by `Hanami::Utils::Escape`. (Sean Collins)
572
+
573
+ [0.7.1]: https://github.com/hanami/hanami-utils/compare/v0.7.0...v0.7.1
433
574
 
434
- ## v0.7.0 - 2016-01-22
575
+ ## [0.7.0] - 2016-01-22
435
576
 
436
577
  ### Changed
437
578
 
438
- - [Luca Guidi] Renamed the project
579
+ - Renamed the project. (Luca Guidi)
580
+
581
+ [0.7.0]: https://github.com/hanami/hanami-utils/compare/v0.6.1...v0.7.0
439
582
 
440
- ## v0.6.1 - 2016-01-19
583
+ ## [0.6.1] - 2016-01-19
441
584
 
442
585
  ### Fixed
443
586
 
444
- - [Anton Davydov] Ensure `Lotus::Utils::String#classify` to work properly with dashes (eg. `"app-store" => "App::Store"`)
587
+ - Ensure `Lotus::Utils::String#classify` to work properly with dashes (eg. `"app-store" => "App::Store"`). (Anton Davydov)
445
588
 
446
- ## v0.6.0 - 2016-01-12
589
+ [0.6.1]: https://github.com/hanami/hanami-utils/compare/v0.6.0...v0.6.1
590
+
591
+ ## [0.6.0] - 2016-01-12
447
592
 
448
593
  ### Added
449
594
 
450
- - [Luca Guidi] Official support for Ruby 2.3
451
- - [Luca Guidi] Custom inflections
452
- - [Luca Guidi] Introduced `Lotus::Utils::Duplicable` as a safe dup logic for Ruby types
453
- - [Luca Guidi] Added `Lotus::Utils::String#rsub` replace rightmost occurrence
595
+ - Official support for Ruby 2.3. (Luca Guidi)
596
+ - Custom inflections. (Luca Guidi)
597
+ - Introduced `Lotus::Utils::Duplicable` as a safe dup logic for Ruby types. (Luca Guidi)
598
+ - Added `Lotus::Utils::String#rsub` replace rightmost occurrence. (Luca Guidi)
454
599
 
455
600
  ### Fixed
456
601
 
457
- - [Luca Guidi] Fix `Lotus::Utils::PathPrefix#join` and `#relative_join` by rejecting arguments that are equal to the separator
458
- - [Karim Kiatlottiavi] Fix `Encoding::UndefinedConversionError` in `Lotus::Utils::Escape.encode`
602
+ - Fix `Lotus::Utils::PathPrefix#join` and `#relative_join` by rejecting arguments that are equal to the separator. (Luca Guidi)
603
+ - Fix `Encoding::UndefinedConversionError` in `Lotus::Utils::Escape.encode`. (Karim Kiatlottiavi)
459
604
 
460
605
  ### Changed
461
606
 
462
- - [Luca Guidi] Deprecate Ruby 2.0 and 2.1
463
- - [Luca Guidi] Removed `Lotus::Utils::Callbacks#add` in favor of `#append`
464
- - [Luca Guidi] Removed pattern support for `Utils::Class.load!` (eg. `Articles(Controller|::Controller)`)
607
+ - Deprecate Ruby 2.0 and 2.1. (Luca Guidi)
608
+ - Removed `Lotus::Utils::Callbacks#add` in favor of `#append`. (Luca Guidi)
609
+ - Removed pattern support for `Utils::Class.load!` (eg. `Articles(Controller|::Controller)`). (Luca Guidi)
610
+
611
+ [0.6.0]: https://github.com/hanami/hanami-utils/compare/v0.5.2...v0.6.0
465
612
 
466
- ## v0.5.2 - 2015-09-30
613
+ ## [0.5.2] - 2015-09-30
467
614
 
468
615
  ### Added
469
616
 
470
- - [Luca Guidi] Added `Lotus::Utils::String#capitalize`
471
- - [Trung Lê] Official support for JRuby 9k+
617
+ - Added `Lotus::Utils::String#capitalize`. (Luca Guidi)
618
+ - Official support for JRuby 9k+. (Trung Lê)
619
+
620
+ [0.5.2]: https://github.com/hanami/hanami-utils/compare/v0.5.1...v0.5.2
472
621
 
473
- ## v0.5.1 - 2015-07-10
622
+ ## [0.5.1] - 2015-07-10
474
623
 
475
624
  ### Fixed
476
625
 
477
- - [Thiago Felippe] Ensure `Lotus::Utils::PathPrefix#join` won't remote duplicate entries (eg `/admin/dashboard/admin`)
626
+ - Ensure `Lotus::Utils::PathPrefix#join` won't remote duplicate entries (eg `/admin/dashboard/admin`). (Thiago Felippe)
478
627
 
479
- ## v0.5.0 - 2015-06-23
628
+ [0.5.1]: https://github.com/hanami/hanami-utils/compare/v0.5.0...v0.5.1
629
+
630
+ ## [0.5.0] - 2015-06-23
480
631
 
481
632
  ### Added
482
633
 
483
- - [Luca Guidi] Extracted `Lotus::Logger` from `hanamirb`
634
+ - Extracted `Lotus::Logger` from `hanamirb`. (Luca Guidi)
484
635
 
485
636
  ### Changed
486
637
 
487
- - [Luca Guidi] `Lotus::Interactor::Result` contains only objects explicitly exposed via `Lotus::Interactor.expose`.
638
+ - `Lotus::Interactor::Result` contains only objects explicitly exposed via `Lotus::Interactor.expose`. (Luca Guidi)
639
+
640
+ [0.5.0]: https://github.com/hanami/hanami-utils/compare/v0.4.3...v0.5.0
488
641
 
489
- ## v0.4.3 - 2015-05-22
642
+ ## [0.4.3] - 2015-05-22
490
643
 
491
644
  ### Added
492
645
 
493
- - [François Beausoleil] Improved `Lotus::Utils::Kernel` messages for `TypeError`.
646
+ - Improved `Lotus::Utils::Kernel` messages for `TypeError`. (François Beausoleil)
647
+
648
+ [0.4.3]: https://github.com/hanami/hanami-utils/compare/v0.4.2...v0.4.3
494
649
 
495
- ## v0.4.2 - 2015-05-15
650
+ ## [0.4.2] - 2015-05-15
496
651
 
497
652
  ### Fixed
498
653
 
499
- - [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to return `::Hash`
654
+ - Ensure `Lotus::Utils::Attributes#to_h` to return `::Hash`. (Luca Guidi)
500
655
 
501
- ## v0.4.1 - 2015-05-15
656
+ [0.4.2]: https://github.com/hanami/hanami-utils/compare/v0.4.1...v0.4.2
657
+
658
+ ## [0.4.1] - 2015-05-15
502
659
 
503
660
  ### Added
504
661
 
505
- - [Luca Guidi & Alfonso Uceda Pompa] Introduced `Lotus::Utils::Inflector`, `Lotus::Utils::String#pluralize` and `#singularize`
662
+ - Introduced `Lotus::Utils::Inflector`, `Lotus::Utils::String#pluralize` and `#singularize`. (Luca Guidi & Alfonso Uceda Pompa)
506
663
 
507
664
  ### Fixed
508
665
 
509
- - [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to safely return nested `::Hash` instances for complex data structures.
510
- - [Luca Guidi] Let `Lotus::Interactor#error` to return a falsey value for control flow. (eg. `check_permissions or error "You can't access"`)
666
+ - Ensure `Lotus::Utils::Attributes#to_h` to safely return nested `::Hash` instances for complex data structures. (Luca Guidi)
667
+ - Let `Lotus::Interactor#error` to return a falsey value for control flow. (eg. `check_permissions or error "You can't access"`). (Luca Guidi)
668
+
669
+ [0.4.1]: https://github.com/hanami/hanami-utils/compare/v0.4.0...v0.4.1
511
670
 
512
- ## v0.4.0 - 2015-03-23
671
+ ## [0.4.0] - 2015-03-23
513
672
 
514
673
  ### Added
515
674
 
516
- - [Luca Guidi] Introduced `Lotus::Utils::Escape`. It implements OWASP/ESAPI suggestions for HTML, HTML attribute and URL escape utilities.
517
- - [Luca Guidi] Introduced `Lotus::Utils::String#dasherize`
518
- - [Luca Guidi] Introduced `Lotus::Utils::String#titleize`
675
+ - Introduced `Lotus::Utils::Escape`. It implements OWASP/ESAPI suggestions for HTML, HTML attribute and URL escape utilities. (Luca Guidi)
676
+ - Introduced `Lotus::Utils::String#dasherize`. (Luca Guidi)
677
+ - Introduced `Lotus::Utils::String#titleize`. (Luca Guidi)
678
+
679
+ [0.4.0]: https://github.com/hanami/hanami-utils/compare/v0.3.5...v0.4.0
519
680
 
520
- ## v0.3.5 - 2015-03-12
681
+ ## [0.3.5] - 2015-03-12
521
682
 
522
683
  ### Added
523
684
 
524
- - [Luca Guidi] Introduced `Lotus::Interactor`
525
- - [Luca Guidi] Introduced `Lotus::Utils::BasicObject`
685
+ - Introduced `Lotus::Interactor`. (Luca Guidi)
686
+ - Introduced `Lotus::Utils::BasicObject`. (Luca Guidi)
526
687
 
527
- ## v0.3.4 - 2015-01-30
688
+ [0.3.5]: https://github.com/hanami/hanami-utils/compare/v0.3.4...v0.3.5
689
+
690
+ ## [0.3.4] - 2015-01-30
528
691
 
529
692
  ### Added
530
693
 
531
- - [Alfonso Uceda Pompa] Aliased `Lotus::Utils::Attributes#get` with `#[]`
532
- - [Simone Carletti] Introduced `Lotus::Utils::Callbacks::Chain#prepend` and `#append`
694
+ - Aliased `Lotus::Utils::Attributes#get` with `#[]`. (Alfonso Uceda Pompa)
695
+ - Introduced `Lotus::Utils::Callbacks::Chain#prepend` and `#append`. (Simone Carletti)
533
696
 
534
697
  ### Deprecated
535
698
 
536
- - [Luca Guidi] Deprecated `Lotus::Utils::Callbacks::Chain#add` in favor of `#append`
699
+ - Deprecated `Lotus::Utils::Callbacks::Chain#add` in favor of `#append`. (Luca Guidi)
700
+
701
+ [0.3.4]: https://github.com/hanami/hanami-utils/compare/v0.3.3...v0.3.4
537
702
 
538
- ## v0.3.3 - 2015-01-08
703
+ ## [0.3.3] - 2015-01-08
539
704
 
540
705
  ### Fixed
541
706
 
542
- - [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`)
543
- - [Luca Guidi] Raise an error if try to coerce non numeric strings into Integer, Float & BigDecimal (eg. `Utils::Kernel.Integer("hello") # => raise TypeError`)
707
+ - 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`). (Luca Guidi)
708
+ - Raise an error if try to coerce non numeric strings into Integer, Float & BigDecimal (eg. `Utils::Kernel.Integer("hello") # => raise TypeError`). (Luca Guidi)
709
+
710
+ [0.3.3]: https://github.com/hanami/hanami-utils/compare/v0.3.2...v0.3.3
544
711
 
545
- ## v0.3.2 - 2014-12-23
712
+ ## [0.3.2] - 2014-12-23
546
713
 
547
714
  ### Added
548
715
 
549
- - [Luca Guidi] Official support for Ruby 2.2
550
- - [Luca Guidi] Introduced `Utils::Attributes`
551
- - [Luca Guidi] Added `Utils::Hash#stringify!`
716
+ - Official support for Ruby 2.2. (Luca Guidi)
717
+ - Introduced `Utils::Attributes`. (Luca Guidi)
718
+ - Added `Utils::Hash#stringify!`. (Luca Guidi)
552
719
 
553
- ## v0.3.1 - 2014-11-23
720
+ [0.3.2]: https://github.com/hanami/hanami-utils/compare/v0.3.1...v0.3.2
721
+
722
+ ## [0.3.1] - 2014-11-23
554
723
 
555
724
  ### Added
556
725
 
557
- - [Luca Guidi] Allow `Utils::Class.load!` to accept any object that implements `#to_s`
558
- - [Trung Lê] Allow `Utils::Class.load!` to accept a class
559
- - [Luca Guidi] Introduced `Utils::Class.load_from_pattern!`
560
- - [Luca Guidi] Introduced `Utils.jruby?` and `Utils.rubinius?`
561
- - [Luca Guidi] Introduced `Utils::Deprecation`
562
- - [Luca Guidi] Official support for Rubinius 2.3+
563
- - [Luca Guidi] Official support for JRuby 1.7+ (with 2.0 mode)
564
- - [Janko Marohnić] Implemented `Utils::PathPrefix` relativness and absolutness
565
- - [Luca Guidi] Made `Utils::PathPrefix` `#join` and `#relative_join` to return a new instance of that class
566
- - [Luca Guidi] Implemented `Utils::Hash#deep_dup`
567
- - [Luca Guidi] Made `Utils::PathPrefix#join` to accept multiple argument
726
+ - Allow `Utils::Class.load!` to accept any object that implements `#to_s`. (Luca Guidi)
727
+ - Allow `Utils::Class.load!` to accept a class. (Trung Lê)
728
+ - Introduced `Utils::Class.load_from_pattern!`. (Luca Guidi)
729
+ - Introduced `Utils.jruby?` and `Utils.rubinius?`. (Luca Guidi)
730
+ - Introduced `Utils::Deprecation`. (Luca Guidi)
731
+ - Official support for Rubinius 2.3+. (Luca Guidi)
732
+ - Official support for JRuby 1.7+ (with 2.0 mode). (Luca Guidi)
733
+ - Implemented `Utils::PathPrefix` relativness and absolutness. (Janko Marohnić)
734
+ - Made `Utils::PathPrefix` `#join` and `#relative_join` to return a new instance of that class. (Luca Guidi)
735
+ - Implemented `Utils::Hash#deep_dup`. (Luca Guidi)
736
+ - Made `Utils::PathPrefix#join` to accept multiple argument. (Luca Guidi)
568
737
 
569
738
  ### Fixed
570
739
 
571
- - [Luca Guidi] Made `Utils::PathPrefix#join` remove trailing occurrences for `@separator` from the output
572
- - [Luca Guidi] Made `Utils::PathPrefix#relative_join` to correctly replace all the instances of `@separator` from the output
740
+ - Made `Utils::PathPrefix#join` remove trailing occurrences for `@separator` from the output. (Luca Guidi)
741
+ - Made `Utils::PathPrefix#relative_join` to correctly replace all the instances of `@separator` from the output. (Luca Guidi)
573
742
 
574
743
  ### Deprecated
575
744
 
576
- - [Luca Guidi] Deprecated `Utils::Class.load!` with a pattern like `Articles(Controller|::Controller)`, use `Utils::Class.load_from_pattern!` instead
745
+ - Deprecated `Utils::Class.load!` with a pattern like `Articles(Controller|::Controller)`, use `Utils::Class.load_from_pattern!` instead. (Luca Guidi)
746
+
747
+ [0.3.1]: https://github.com/hanami/hanami-utils/compare/v0.3.0...v0.3.1
577
748
 
578
- ## v0.3.0 - 2014-10-23
749
+ ## [0.3.0] - 2014-10-23
579
750
 
580
751
  ### Added
581
752
 
582
- - [Celso Fernandes] Add BigDecimal coercion to Lotus::Utils::Kernel
583
- - [Luca Guidi] Define `Boolean` constant, if missing
584
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::PathPrefix`
585
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::Hash`
586
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::String`
753
+ - Add BigDecimal coercion to Lotus::Utils::Kernel. (Celso Fernandes)
754
+ - Define `Boolean` constant, if missing. (Luca Guidi)
755
+ - Use composition over inheritance for `Lotus::Utils::PathPrefix`. (Luca Guidi)
756
+ - Use composition over inheritance for `Lotus::Utils::Hash`. (Luca Guidi)
757
+ - Use composition over inheritance for `Lotus::Utils::String`. (Luca Guidi)
587
758
 
588
759
  ### Fixed
589
760
 
590
- - [Luca Guidi] Improved error message for `Utils::Class.load!`
591
- - [Tom Kadwill] Improved error `NameError` message by passing in the whole constant name to `Utils::Class.load!`
592
- - [Luca Guidi] `Utils::Hash#to_h` return instances of `::Hash` in case of nested symbolized data structure
593
- - [Luca Guidi] Raise `TypeError` if `nil` is passed to `PathPrefix#relative_join`
594
- - [Peter Suschlik] Define `Lotus::Utils::Hash#respond_to_missing?`
595
- - [Peter Suschlik] Define `Lotus::Utils::String#responds_to_missing?`
596
- - [Luca Guidi] Ensure `Utils::Hash#inspect` output to be the same of `::Hash#inspect`
761
+ - Improved error message for `Utils::Class.load!`. (Luca Guidi)
762
+ - Improved error `NameError` message by passing in the whole constant name to `Utils::Class.load!`. (Tom Kadwill)
763
+ - `Utils::Hash#to_h` return instances of `::Hash` in case of nested symbolized data structure. (Luca Guidi)
764
+ - Raise `TypeError` if `nil` is passed to `PathPrefix#relative_join`. (Luca Guidi)
765
+ - Define `Lotus::Utils::Hash#respond_to_missing?`. (Peter Suschlik)
766
+ - Define `Lotus::Utils::String#responds_to_missing?`. (Peter Suschlik)
767
+ - Ensure `Utils::Hash#inspect` output to be the same of `::Hash#inspect`. (Luca Guidi)
768
+
769
+ [0.3.0]: https://github.com/hanami/hanami-utils/compare/v0.2.0...v0.3.0
597
770
 
598
- ## v0.2.0 - 2014-06-23
771
+ ## [0.2.0] - 2014-06-23
599
772
 
600
773
  ### Added
601
774
 
602
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Symbol`
603
- - [Luca Guidi] Made `Kernel.Pathname` to raise an error when `nil` is passed as argument
604
- - [Luca Guidi] Implemented `Lotus::Utils::LoadPaths#freeze` in order to prevent modification after the object has been frozen
605
- - [Luca Guidi] Implemented Lotus::Utils::LoadPaths#push, also aliased as #<<
606
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::LoadPaths`
607
- - [Luca Guidi] Introduced `Lotus::Utils::LoadPaths`
608
- - [Luca Guidi] Introduced `Lotus::Utils::String#namespace`, in order to return the top level Ruby namespace for the given string
609
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Pathname`
775
+ - Implemented `Lotus::Utils::Kernel.Symbol`. (Luca Guidi)
776
+ - Made `Kernel.Pathname` to raise an error when `nil` is passed as argument. (Luca Guidi)
777
+ - Implemented `Lotus::Utils::LoadPaths#freeze` in order to prevent modification after the object has been frozen. (Luca Guidi)
778
+ - Implemented Lotus::Utils::LoadPaths#push, also aliased as #<<. (Luca Guidi)
779
+ - Use composition over inheritance for `Lotus::Utils::LoadPaths`. (Luca Guidi)
780
+ - Introduced `Lotus::Utils::LoadPaths`. (Luca Guidi)
781
+ - Introduced `Lotus::Utils::String#namespace`, in order to return the top level Ruby namespace for the given string. (Luca Guidi)
782
+ - Implemented `Lotus::Utils::Kernel.Pathname`. (Luca Guidi)
610
783
 
611
784
  ### Fixed
612
785
 
613
- - [Luca Guidi] Implemented `Lotus::Utils::LoadPaths#initialize_copy` in order to safely `#dup` and `#clone`
786
+ - Implemented `Lotus::Utils::LoadPaths#initialize_copy` in order to safely `#dup` and `#clone`. (Luca Guidi)
614
787
 
615
788
  ### Changed
616
789
 
617
- - [Luca Guidi] Implemented `Lotus::Utils::Callbacks::Chain#freeze` in order to prevent modification after the object has been frozen
618
- - [Luca Guidi] All the `Utils::Kernel` methods will raise `TypeError` in case of failed coercion.
619
- - [Luca Guidi] Made `Kernel.Time` to raise an error when `nil` is passed as argument
620
- - [Luca Guidi] Made `Kernel.DateTime` to raise an error when `nil` is passed as argument
621
- - [Luca Guidi] Made `Kernel.Date` to raise an error when `nil` is passed as argument
622
- - [Luca Guidi] Made `Kernel.Boolean` to return false when `nil` is passed as argument
623
- - [Luca Guidi] Made `Kernel.String` to return an empty string when `nil` is passed as argument
624
- - [Luca Guidi] Made `Kernel.Float` to return `0.0` when `nil` is passed as argument
625
- - [Luca Guidi] Made `Kernel.Integer` to return `0` when `nil` is passed as argument
626
- - [Luca Guidi] Made `Kernel.Hash` to return an empty `Hash` when `nil` is passed as argument
627
- - [Luca Guidi] Made `Kernel.Set` to return an empty `Set` when `nil` is passed as argument
628
- - [Luca Guidi] Made `Kernel.Array` to return an empty `Array` when `nil` is passed as argument
629
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::Callbacks::Chain`
790
+ - Implemented `Lotus::Utils::Callbacks::Chain#freeze` in order to prevent modification after the object has been frozen. (Luca Guidi)
791
+ - All the `Utils::Kernel` methods will raise `TypeError` in case of failed coercion. (Luca Guidi)
792
+ - Made `Kernel.Time` to raise an error when `nil` is passed as argument. (Luca Guidi)
793
+ - Made `Kernel.DateTime` to raise an error when `nil` is passed as argument. (Luca Guidi)
794
+ - Made `Kernel.Date` to raise an error when `nil` is passed as argument. (Luca Guidi)
795
+ - Made `Kernel.Boolean` to return false when `nil` is passed as argument. (Luca Guidi)
796
+ - Made `Kernel.String` to return an empty string when `nil` is passed as argument. (Luca Guidi)
797
+ - Made `Kernel.Float` to return `0.0` when `nil` is passed as argument. (Luca Guidi)
798
+ - Made `Kernel.Integer` to return `0` when `nil` is passed as argument. (Luca Guidi)
799
+ - Made `Kernel.Hash` to return an empty `Hash` when `nil` is passed as argument. (Luca Guidi)
800
+ - Made `Kernel.Set` to return an empty `Set` when `nil` is passed as argument. (Luca Guidi)
801
+ - Made `Kernel.Array` to return an empty `Array` when `nil` is passed as argument. (Luca Guidi)
802
+ - Use composition over inheritance for `Lotus::Utils::Callbacks::Chain`. (Luca Guidi)
630
803
 
631
- ## v0.1.1 - 2014-04-23
804
+ [0.2.0]: https://github.com/hanami/hanami-utils/compare/v0.1.1...v0.2.0
805
+
806
+ ## [0.1.1] - 2014-04-23
632
807
 
633
808
  ### Added
634
809
 
635
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Time`
636
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.DateTime`
637
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Date`
638
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Float`
639
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Boolean`
640
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Hash`
641
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Set`
642
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.String`
643
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Integer`
644
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Array`
810
+ - Implemented `Lotus::Utils::Kernel.Time`. (Luca Guidi)
811
+ - Implemented `Lotus::Utils::Kernel.DateTime`. (Luca Guidi)
812
+ - Implemented `Lotus::Utils::Kernel.Date`. (Luca Guidi)
813
+ - Implemented `Lotus::Utils::Kernel.Float`. (Luca Guidi)
814
+ - Implemented `Lotus::Utils::Kernel.Boolean`. (Luca Guidi)
815
+ - Implemented `Lotus::Utils::Kernel.Hash`. (Luca Guidi)
816
+ - Implemented `Lotus::Utils::Kernel.Set`. (Luca Guidi)
817
+ - Implemented `Lotus::Utils::Kernel.String`. (Luca Guidi)
818
+ - Implemented `Lotus::Utils::Kernel.Integer`. (Luca Guidi)
819
+ - Implemented `Lotus::Utils::Kernel.Array`. (Luca Guidi)
645
820
 
646
821
  ### Fixed
647
822
 
648
- - [Christopher Keele] Add missing stdlib `Set` require to `Utils::ClassAttribute`
823
+ - Add missing stdlib `Set` require to `Utils::ClassAttribute`. (Christopher Keele)
824
+
825
+ [0.1.1]: https://github.com/hanami/hanami-utils/compare/v0.1.0...v0.1.1
649
826
 
650
- ## v0.1.0 - 2014-01-23
827
+ ## 0.1.0 - 2014-01-23
651
828
 
652
829
  ### Added
653
830
 
654
- - [Luca Guidi] Introduced `Lotus::Utils::String#demodulize`
655
- - [Luca Guidi] Introduced `Lotus::Utils::IO.silence_warnings`
656
- - [Luca Guidi] Introduced class loading mechanism from a string: `Utils::Class.load!`
657
- - [Luca Guidi] Introduced callbacks support for classes
658
- - [Luca Guidi] Introduced inheritable class level attributes
659
- - [Luca Guidi] Introduced `Utils::Hash`
660
- - [Luca Guidi] Introduced `Utils::String`
661
- - [Luca Guidi] Introduced `Utils::PathPrefix`
662
- - [Luca Guidi] Official support for MRI 2.0+
831
+ - Introduced `Lotus::Utils::String#demodulize`. (Luca Guidi)
832
+ - Introduced `Lotus::Utils::IO.silence_warnings`. (Luca Guidi)
833
+ - Introduced class loading mechanism from a string: `Utils::Class.load!`. (Luca Guidi)
834
+ - Introduced callbacks support for classes. (Luca Guidi)
835
+ - Introduced inheritable class level attributes. (Luca Guidi)
836
+ - Introduced `Utils::Hash`. (Luca Guidi)
837
+ - Introduced `Utils::String`. (Luca Guidi)
838
+ - Introduced `Utils::PathPrefix`. (Luca Guidi)
839
+ - Official support for MRI 2.0+. (Luca Guidi)