hanami-utils 2.3.0.beta2 → 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,660 +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.beta2 - 2025-10-17
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).
7
+
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
6
37
 
7
38
  ### Changed
8
39
 
9
40
  - Drop support for Ruby 3.1
10
41
 
11
- ## 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
12
51
 
13
- ## v2.2.0 - 2024-11-05
52
+ ## [2.2.0.rc1] - 2024-10-29
14
53
 
15
- ## v2.2.0.rc1 - 2024-10-29
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.beta2 - 2024-09-25
56
+ ## [2.2.0.beta2] - 2024-09-25
18
57
 
19
- ## v2.2.0.beta1 - 2024-07-16
58
+ [2.2.0.beta2]: https://github.com/hanami/hanami-utils/compare/v2.2.0.beta1...v2.2.0.beta2
59
+
60
+ ## [2.2.0.beta1] - 2024-07-16
20
61
 
21
62
  ### Changed
22
63
 
23
64
  - Drop support for Ruby 3.0
24
65
 
25
- ## 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
67
+
68
+ ## [2.1.0] - 2024-02-27
69
+
70
+ [2.1.0]: https://github.com/hanami/hanami-utils/compare/v2.1.0.rc3...v2.1.0
26
71
 
27
- ## v2.1.0.rc3 - 2024-02-16
72
+ ## [2.1.0.rc3] - 2024-02-16
28
73
 
29
- ## v2.1.0.rc2 - 2023-11-08
74
+ [2.1.0.rc3]: https://github.com/hanami/hanami-utils/compare/v2.1.0.rc2...v2.1.0.rc3
30
75
 
31
- ## v2.1.0.beta1 - 2023-06-29
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
32
81
 
33
82
  ### Changed
34
83
 
35
- - [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
36
87
 
37
- ## v2.0.3 - 2023-02-01
88
+ ## [2.0.3] - 2023-02-01
38
89
 
39
90
  ### Fixed
40
91
 
41
- - [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)
42
93
 
43
- ## v2.0.2 - 2022-12-25
94
+ [2.0.3]: https://github.com/hanami/hanami-utils/compare/v2.0.2...v2.0.3
95
+
96
+ ## [2.0.2] - 2022-12-25
44
97
 
45
98
  ### Added
46
99
 
47
- - [Luca Guidi] Official support for Ruby 3.2
100
+ - Official support for Ruby 3.2. (Luca Guidi)
101
+
102
+ [2.0.2]: https://github.com/hanami/hanami-utils/compare/v2.0.1...v2.0.2
48
103
 
49
- ## v2.0.1 - 2022-12-06
104
+ ## [2.0.1] - 2022-12-06
50
105
 
51
106
  ### Fixed
52
107
 
53
- - [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
54
111
 
55
- ## v2.0.0 - 2022-11-22
112
+ ## [2.0.0] - 2022-11-22
56
113
 
57
- ## v2.0.0.rc1 - 2022-11-08
114
+ [2.0.0]: https://github.com/hanami/hanami-utils/compare/v2.0.0.rc1...v2.0.0
115
+
116
+ ## [2.0.0.rc1] - 2022-11-08
58
117
 
59
118
  ### Fixed
60
119
 
61
- - [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)
62
121
 
63
122
  ### Changed
64
123
 
65
- - [Luca Guidi] Removed `Hanami::Logger` in favor of `Dry::Logger`
124
+ - Removed `Hanami::Logger` in favor of `Dry::Logger`. (Luca Guidi)
125
+
126
+ [2.0.0.rc1]: https://github.com/hanami/hanami-utils/compare/v2.0.0.beta1...v2.0.0.rc1
66
127
 
67
- ## v2.0.0.beta1 - 2022-07-20
128
+ ## [2.0.0.beta1] - 2022-07-20
68
129
 
69
130
  ### Changed
70
131
 
71
- - [Luca Guidi] Removed `Hanami::Utils::BasicObject` (moved to `dry-core` as `Dry::Core::BasicObject`)
72
- - [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
73
136
 
74
- ## v2.0.0.alpha6 - 2022-02-10
137
+ ## [2.0.0.alpha6] - 2022-02-10
75
138
 
76
139
  ### Added
77
140
 
78
- - [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)
79
142
 
80
143
  ### Fixed
81
144
 
82
- - [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)
83
146
 
84
147
  ### Changed
85
148
 
86
- - [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)
87
150
 
88
- ## v2.0.0.alpha3 - 2021-11-09
151
+ [2.0.0.alpha6]: https://github.com/hanami/hanami-utils/compare/v2.0.0.alpha3...v2.0.0.alpha6
152
+
153
+ ## [2.0.0.alpha3] - 2021-11-09
89
154
 
90
155
  No changes.
91
156
 
92
- ## 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
93
160
 
94
161
  ### Changed
95
162
 
96
- - [Luca Guidi] Drop support for Ruby: MRI 2.5.
97
- - [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
98
167
 
99
- ## v2.0.0.alpha1 - 2019-01-30
168
+ ## [2.0.0.alpha1] - 2019-01-30
100
169
 
101
170
  ### Added
102
171
 
103
- - [Gustavo Caso] Introduce `Hanami::Middleware` namespace
104
- - [Luca Guidi] Introduce `Callbacks::Chain#dup`
172
+ - Introduce `Hanami::Middleware` namespace. (Gustavo Caso)
173
+ - Introduce `Callbacks::Chain#dup`. (Luca Guidi)
105
174
 
106
175
  ### Changed
107
176
 
108
- - [Luca Guidi] Drop support for Ruby: MRI 2.3, and 2.4.
109
- - [Luca Guidi] Remove `Utils::Duplicable`
110
- - [Luca Guidi] Remove `Utils::Inflector`
111
- - [Luca Guidi] Remove `Utils::String.singularize`, and `.pluralize`
112
- - [Luca Guidi] Remove `Utils::String#singularize`, and `#pluralize`
113
- - [Luca Guidi] Remove instance level interface for `Utils::Hash`
114
- - [Luca Guidi] Transform `Utils::Hash` from class to module
115
- - [Luca Guidi] Remove `Utils.reload!`
116
- - [Gustavo Caso] Remove `Utils::File.rewrite`
117
- - [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)
118
187
 
119
- ## v1.3.8 - 2021-05-03
188
+ [2.0.0.alpha1]: https://github.com/hanami/hanami-utils/compare/v1.3.8...v2.0.0.alpha1
189
+
190
+ ## [1.3.8] - 2021-05-03
120
191
 
121
192
  ### Fixed
122
193
 
123
- - [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)
195
+
196
+ [1.3.8]: https://github.com/hanami/hanami-utils/compare/v1.3.7...v1.3.8
124
197
 
125
- ## v1.3.7 - 2021-01-04
198
+ ## [1.3.7] - 2021-01-04
126
199
 
127
200
  ### Added
128
201
 
129
- - [Luca Guidi] Official support for Ruby: MRI 3.0
130
- - [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)
131
204
 
132
205
  ### Fixed
133
206
 
134
- - [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
135
210
 
136
- ## v1.3.6 - 2020-01-07
211
+ ## [1.3.6] - 2020-01-07
137
212
 
138
213
  ### Added
139
214
 
140
- - [Luca Guidi] Official support for Ruby: MRI 2.7
215
+ - Official support for Ruby: MRI 2.7. (Luca Guidi)
141
216
 
142
217
  ### Fixed
143
218
 
144
- - [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)
145
220
 
146
- ## v1.3.5 - 2019-10-25
221
+ [1.3.6]: https://github.com/hanami/hanami-utils/compare/v1.3.5...v1.3.6
222
+
223
+ ## [1.3.5] - 2019-10-25
147
224
 
148
225
  ### Fixed
149
226
 
150
- - [Ivan Kabluchkov] Ensure `Hanami::Logger` filters to not crash when logger stream is a closed tempfile
151
- - [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)
229
+
230
+ [1.3.5]: https://github.com/hanami/hanami-utils/compare/v1.3.4...v1.3.5
152
231
 
153
- ## v1.3.4 - 2019-09-27
232
+ ## [1.3.4] - 2019-09-27
154
233
 
155
234
  ### Added
156
235
 
157
- - [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
158
239
 
159
- ## v1.3.3 - 2019-09-13
240
+ ## [1.3.3] - 2019-09-13
160
241
 
161
242
  ### Fixed
162
243
 
163
- - [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)
164
245
 
165
- ## v1.3.2 - 2019-06-21
246
+ [1.3.3]: https://github.com/hanami/hanami-utils/compare/v1.3.2...v1.3.3
247
+
248
+ ## [1.3.2] - 2019-06-21
166
249
 
167
250
  ### Added
168
251
 
169
- - [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)
253
+
254
+ [1.3.2]: https://github.com/hanami/hanami-utils/compare/v1.3.1...v1.3.2
170
255
 
171
- ## v1.3.1 - 2019-01-18
256
+ ## [1.3.1] - 2019-01-18
172
257
 
173
258
  ### Added
174
259
 
175
- - [Luca Guidi] Official support for Ruby: MRI 2.6
176
- - [Luca Guidi] Support `bundler` 2.0+
260
+ - Official support for Ruby: MRI 2.6. (Luca Guidi)
261
+ - Support `bundler` 2.0+. (Luca Guidi)
177
262
 
178
263
  ### Fixed
179
264
 
180
- - [Alfonso Uceda] Fix `Hash` serialization for `Utils::Logger`
181
- - [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)
182
267
 
183
- ## v1.3.0 - 2018-10-24
268
+ [1.3.1]: https://github.com/hanami/hanami-utils/compare/v1.3.0...v1.3.1
184
269
 
185
- ## v1.3.0.beta1 - 2018-08-08
270
+ ## [1.3.0] - 2018-10-24
271
+
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
186
275
 
187
276
  ### Added
188
277
 
189
- - [Luca Guidi] Official support for JRuby 9.2.0.0
190
- - [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)
191
280
 
192
281
  ### Fixed
193
282
 
194
- - [graywolf] Don't show `Fixnum` Ruby warning for 2.4+
195
- - [Luca Guidi] Fix pluralization of `"fee"`
283
+ - Don't show `Fixnum` Ruby warning for 2.4+. (graywolf)
284
+ - Fix pluralization of `"fee"`. (Luca Guidi)
196
285
 
197
286
  ### Deprecated
198
287
 
199
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::String` as Ruby type. Please use `Utils::String` class methods instead of `Utils::String.new("")`.
200
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::Hash` as Ruby type. Please use `Utils::Hash` class methods instead of `Utils::Hash.new({})`.
201
- - [Luca Guidi & Marion Schleifer] Deprecate `Utils::String.pluralize` and `.singularize`.
202
- - [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
203
294
 
204
- ## v1.2.0 - 2018-04-11
295
+ ## [1.2.0] - 2018-04-11
205
296
 
206
- ## v1.2.0.rc2 - 2018-04-06
297
+ [1.2.0]: https://github.com/hanami/hanami-utils/compare/v1.2.0.rc2...v1.2.0
298
+
299
+ ## [1.2.0.rc2] - 2018-04-06
207
300
 
208
301
  ### Added
209
302
 
210
- - [Luca Guidi] Use different colors for each `Hanami::Logger` level
303
+ - Use different colors for each `Hanami::Logger` level. (Luca Guidi)
304
+
305
+ [1.2.0.rc2]: https://github.com/hanami/hanami-utils/compare/v1.2.0.rc1...v1.2.0.rc2
211
306
 
212
- ## v1.2.0.rc1 - 2018-03-30
307
+ ## [1.2.0.rc1] - 2018-03-30
213
308
 
214
309
  ### Added
215
310
 
216
- - [Oana Sipos & Sean Collins & Luca Guidi] Colored logging
311
+ - Colored logging. (Oana Sipos & Sean Collins & Luca Guidi)
217
312
 
218
313
  ### Fixed
219
314
 
220
- - [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
221
318
 
222
- ## v1.2.0.beta2 - 2018-03-23
319
+ ## [1.2.0.beta2] - 2018-03-23
223
320
 
224
- ## v1.2.0.beta1 - 2018-02-28
321
+ [1.2.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.2.0.beta1...v1.2.0.beta2
225
322
 
226
- ## v1.1.2 - 2018-02-02
323
+ ## [1.2.0.beta1] - 2018-02-28
324
+
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
227
328
 
228
329
  ### Added
229
330
 
230
- - [Luca Guidi] Official support for Ruby: MRI 2.5
331
+ - Official support for Ruby: MRI 2.5. (Luca Guidi)
231
332
 
232
333
  ### Fixed
233
334
 
234
- - [Sean Collins & Luca Guidi] Make `Utils::Files.write` idempotent: ensure to truncate the file before to write
235
- - [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)
236
337
 
237
338
  ### Changed
238
339
 
239
- - [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
240
343
 
241
- ## v1.1.1 - 2017-11-22
344
+ ## [1.1.1] - 2017-11-22
242
345
 
243
346
  ### Added
244
347
 
245
- - [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)
246
349
 
247
350
  ### Fixed
248
351
 
249
- - [Yuta Tokitake] Ensure `Interactor#call` to accept non-keyword arguments
352
+ - Ensure `Interactor#call` to accept non-keyword arguments. (Yuta Tokitake)
250
353
 
251
- ## v1.1.0 - 2017-10-25
354
+ [1.1.1]: https://github.com/hanami/hanami-utils/compare/v1.1.0...v1.1.1
355
+
356
+ ## [1.1.0] - 2017-10-25
252
357
 
253
358
  ### Added
254
359
 
255
- - [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
256
365
 
257
- ## v1.1.0.rc1 - 2017-10-16
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.beta3 - 2017-10-04
368
+ ## [1.1.0.beta3] - 2017-10-04
260
369
 
261
- ## v1.1.0.beta2 - 2017-10-03
370
+ [1.1.0.beta3]: https://github.com/hanami/hanami-utils/compare/v1.1.0.beta2...v1.1.0.beta3
371
+
372
+ ## [1.1.0.beta2] - 2017-10-03
262
373
 
263
374
  ### Added
264
375
 
265
- - [Alfonso Uceda] Auto create directory for `Hanami::Logger`
376
+ - Auto create directory for `Hanami::Logger`. (Alfonso Uceda)
377
+
378
+ [1.1.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.1.0.beta1...v1.1.0.beta2
266
379
 
267
- ## v1.1.0.beta1 - 2017-08-11
380
+ ## [1.1.0.beta1] - 2017-08-11
268
381
 
269
382
  ### Added
270
383
 
271
- - [Marion Duprey] Allow `Hanami::Interactor#call` to accept arguments. `#initialize` should be used for Dependency Injection, while `#call` should be used for input
272
- - [Marion Schleifer] Introduce `Utils::Hash.stringify`
273
- - [Marion Schleifer] Introduce `Utils::String.titleize`, `.capitalize`, `.classify`, `.underscore`, `.dasherize`, `.demodulize`, `.namespace`, `.pluralize`, `.singularize`, and `.rsub`
274
- - [Luca Guidi] Introduce `Utils::Files`: a set of utils for file manipulations
275
- - [Luca Guidi] Introduce `Utils::String.transform` a pipelined transformations for strings
276
- - [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
277
392
 
278
- ## v1.0.4 - 2017-10-02
393
+ ## [1.0.4] - 2017-10-02
279
394
 
280
395
  ### Fixed
281
396
 
282
- - [Luca Guidi] Make `Hanami::Utils::BasicObject` to be fully compatible with Ruby's `pp` and to be inspected by Pry.
283
- - [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)
284
399
 
285
- ## v1.0.3 - 2017-09-06
400
+ [1.0.4]: https://github.com/hanami/hanami-utils/compare/v1.0.3...v1.0.4
401
+
402
+ ## [1.0.3] - 2017-09-06
286
403
 
287
404
  ### Fixed
288
405
 
289
- - [Malina Sulca] Fix pluralization/singularization for `"exercise" => "exercises"`
290
- - [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)
408
+
409
+ [1.0.3]: https://github.com/hanami/hanami-utils/compare/v1.0.2...v1.0.3
291
410
 
292
- ## v1.0.2 - 2017-07-10
411
+ ## [1.0.2] - 2017-07-10
293
412
 
294
413
  ### Fixed
295
414
 
296
- - [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
297
418
 
298
- ## v1.0.1 - 2017-06-23
419
+ ## [1.0.1] - 2017-06-23
299
420
 
300
421
  ### Added
301
422
 
302
- - [Luca Guidi] Introduced `Utils::Hash.symbolize` and `.deep_symbolize`
303
- - [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)
304
425
 
305
426
  ### Fixed
306
427
 
307
- - [choallin] Ensure `Utils::String#classify` to return output identical to the input for already classified strings.
308
- - [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)
309
430
 
310
- ## v1.0.0 - 2017-04-06
431
+ [1.0.1]: https://github.com/hanami/hanami-utils/compare/v1.0.0...v1.0.1
311
432
 
312
- ## v1.0.0.rc1 - 2017-03-31
433
+ ## [1.0.0] - 2017-04-06
434
+
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
313
438
 
314
439
  ### Added
315
440
 
316
- - [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
317
444
 
318
- ## v1.0.0.beta3 - 2017-03-17
445
+ ## [1.0.0.beta3] - 2017-03-17
319
446
 
320
447
  ### Fixed
321
448
 
322
- - [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)
323
450
 
324
451
  ### Changed
325
452
 
326
- - [Luca Guidi] Removed `Utils::Attributes`
327
- - [Luca Guidi] Removed deprecated `Hanami::Interactor::Result#failing?`
328
- - [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)
329
456
 
330
- ## v1.0.0.beta2 - 2017-03-02
457
+ [1.0.0.beta3]: https://github.com/hanami/hanami-utils/compare/v1.0.0.beta2...v1.0.0.beta3
458
+
459
+ ## [1.0.0.beta2] - 2017-03-02
331
460
 
332
461
  ### Changed
333
462
 
334
- - [Anton Davydov] Made `Utils::Blank` private API
463
+ - Made `Utils::Blank` private API. (Anton Davydov)
464
+
465
+ [1.0.0.beta2]: https://github.com/hanami/hanami-utils/compare/v1.0.0.beta1...v1.0.0.beta2
335
466
 
336
- ## v1.0.0.beta1 - 2017-02-14
467
+ ## [1.0.0.beta1] - 2017-02-14
337
468
 
338
469
  ### Added
339
470
 
340
- - [Luca Guidi] Official support for Ruby: MRI 2.4
341
- - [alexd16] Introduced `Utils::Hash#deep_symbolize!` for deep symbolization
342
- - [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)
343
474
 
344
475
  ### Fixed
345
476
 
346
- - [alexd16 & Alfonso Uceda & Luca Guidi] Don't deeply symbolize `Hanami::Interactor::Result` payload
347
- - [Alfonso Uceda] `Hanami::Interactor::Result`: Don't transform objects that respond to `#to_hash` (like entities)
348
- - [Bhanu Prakash] Use `Utils::Json.generate` instead of the deprecated `.dump` for `Hanami::Logger` JSON formatter
349
- - [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)
350
481
 
351
482
  ### Changed
352
483
 
353
- - [alexd16] `Utils::Hash#symbolize!` no longer symbolizes deep structures
354
- - [Luca Guidi & Alfonso Uceda] Improve readability for default logger formatter
355
- - [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
356
489
 
357
- ## v0.9.2 - 2016-12-19
490
+ ## [0.9.2] - 2016-12-19
358
491
 
359
492
  ### Added
360
493
 
361
- - [Grachev Mikhail] Introduced `Hanami::Interactor::Result#failure?`
494
+ - Introduced `Hanami::Interactor::Result#failure?`. (Grachev Mikhail)
362
495
 
363
496
  ### Fixed
364
497
 
365
- - [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)
366
499
 
367
500
  ### Changed
368
501
 
369
- - [Grachev Mikhail] Deprecate `Hanami::Interactor::Result#failing?` in favor of `#failure?`
502
+ - Deprecate `Hanami::Interactor::Result#failing?` in favor of `#failure?`. (Grachev Mikhail)
370
503
 
371
- ## 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
372
507
 
373
508
  ### Added
374
509
 
375
- - [Luca Guidi] Introduced `Utils::Json.parse` and `.generate`
510
+ - Introduced `Utils::Json.parse` and `.generate`. (Luca Guidi)
376
511
 
377
512
  ### Fixed
378
513
 
379
- - [Luca Guidi] Ensure `Utils::Json` parsing to not eval untrusted input
514
+ - Ensure `Utils::Json` parsing to not eval untrusted input. (Luca Guidi)
380
515
 
381
516
  ### Changed
382
517
 
383
- - [Luca Guidi] Deprecated `Utils::Json.load` in favor of `.parse`
384
- - [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
385
522
 
386
- ## v0.9.0 - 2016-11-15
523
+ ## [0.9.0] - 2016-11-15
387
524
 
388
525
  ### Added
389
526
 
390
- [Luca Guidi] Introduced `Utils.require!` to recursively require Ruby files with an order that is consistent across platforms
391
- [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)
392
529
 
393
- - [Luca Guidi] Make `Utils::BasicObject` pretty printable
394
- - [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)
395
532
 
396
533
  ### Fixed
397
534
 
398
- - [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)
399
536
 
400
537
  ### Changed
401
538
 
402
- - [Luca Guidi] Make `Utils::Hash` only compatible with objects that respond to `#to_hash`
403
- - [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
404
543
 
405
- ## v0.8.0 - 2016-07-22
544
+ ## [0.8.0] - 2016-07-22
406
545
 
407
546
  ### Added
408
547
 
409
- - [Andrey Morskov] Introduced `Hanami::Utils::Blank`
410
- - [Anton Davydov] Allow to specify a default log level for `Hanami::Logger`
411
- - [Anton Davydov] Introduced default and JSON formatters for `Hanami::Logger`
412
- - [Erol Fornoles] Allow deep indifferent access for `Hanami::Utils::Attributes`
413
- - [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)
414
553
 
415
554
  ### Fixed
416
555
 
417
- - [Hiếu Nguyễn] Ensure `Hanami::Utils::String#classify` to return already classified strings as they are. Eg. `"AwesomeProject"` should return `"AwesomeProject"`, not `"Awesomeproject"`.
418
- - [TheSmartnik] Fix English pluralization for words ending with `"rses"`
419
- - [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)
420
559
 
421
560
  ### Changed
422
561
 
423
- - [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)
424
563
 
425
- ## 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
426
567
 
427
568
  ### Fixed
428
569
 
429
- - [Yuuji Yaginuma] `Hanami::Utils::Escape`: fixed Ruby warning for `String#chars` with a block, which is deprecated. Using `String#each_char` now.
430
- - [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
431
574
 
432
- ## v0.7.0 - 2016-01-22
575
+ ## [0.7.0] - 2016-01-22
433
576
 
434
577
  ### Changed
435
578
 
436
- - [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
437
582
 
438
- ## v0.6.1 - 2016-01-19
583
+ ## [0.6.1] - 2016-01-19
439
584
 
440
585
  ### Fixed
441
586
 
442
- - [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)
443
588
 
444
- ## 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
445
592
 
446
593
  ### Added
447
594
 
448
- - [Luca Guidi] Official support for Ruby 2.3
449
- - [Luca Guidi] Custom inflections
450
- - [Luca Guidi] Introduced `Lotus::Utils::Duplicable` as a safe dup logic for Ruby types
451
- - [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)
452
599
 
453
600
  ### Fixed
454
601
 
455
- - [Luca Guidi] Fix `Lotus::Utils::PathPrefix#join` and `#relative_join` by rejecting arguments that are equal to the separator
456
- - [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)
457
604
 
458
605
  ### Changed
459
606
 
460
- - [Luca Guidi] Deprecate Ruby 2.0 and 2.1
461
- - [Luca Guidi] Removed `Lotus::Utils::Callbacks#add` in favor of `#append`
462
- - [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
463
612
 
464
- ## v0.5.2 - 2015-09-30
613
+ ## [0.5.2] - 2015-09-30
465
614
 
466
615
  ### Added
467
616
 
468
- - [Luca Guidi] Added `Lotus::Utils::String#capitalize`
469
- - [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
470
621
 
471
- ## v0.5.1 - 2015-07-10
622
+ ## [0.5.1] - 2015-07-10
472
623
 
473
624
  ### Fixed
474
625
 
475
- - [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)
476
627
 
477
- ## 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
478
631
 
479
632
  ### Added
480
633
 
481
- - [Luca Guidi] Extracted `Lotus::Logger` from `hanamirb`
634
+ - Extracted `Lotus::Logger` from `hanamirb`. (Luca Guidi)
482
635
 
483
636
  ### Changed
484
637
 
485
- - [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
486
641
 
487
- ## v0.4.3 - 2015-05-22
642
+ ## [0.4.3] - 2015-05-22
488
643
 
489
644
  ### Added
490
645
 
491
- - [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
492
649
 
493
- ## v0.4.2 - 2015-05-15
650
+ ## [0.4.2] - 2015-05-15
494
651
 
495
652
  ### Fixed
496
653
 
497
- - [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to return `::Hash`
654
+ - Ensure `Lotus::Utils::Attributes#to_h` to return `::Hash`. (Luca Guidi)
498
655
 
499
- ## 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
500
659
 
501
660
  ### Added
502
661
 
503
- - [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)
504
663
 
505
664
  ### Fixed
506
665
 
507
- - [Luca Guidi] Ensure `Lotus::Utils::Attributes#to_h` to safely return nested `::Hash` instances for complex data structures.
508
- - [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
509
670
 
510
- ## v0.4.0 - 2015-03-23
671
+ ## [0.4.0] - 2015-03-23
511
672
 
512
673
  ### Added
513
674
 
514
- - [Luca Guidi] Introduced `Lotus::Utils::Escape`. It implements OWASP/ESAPI suggestions for HTML, HTML attribute and URL escape utilities.
515
- - [Luca Guidi] Introduced `Lotus::Utils::String#dasherize`
516
- - [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
517
680
 
518
- ## v0.3.5 - 2015-03-12
681
+ ## [0.3.5] - 2015-03-12
519
682
 
520
683
  ### Added
521
684
 
522
- - [Luca Guidi] Introduced `Lotus::Interactor`
523
- - [Luca Guidi] Introduced `Lotus::Utils::BasicObject`
685
+ - Introduced `Lotus::Interactor`. (Luca Guidi)
686
+ - Introduced `Lotus::Utils::BasicObject`. (Luca Guidi)
524
687
 
525
- ## 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
526
691
 
527
692
  ### Added
528
693
 
529
- - [Alfonso Uceda Pompa] Aliased `Lotus::Utils::Attributes#get` with `#[]`
530
- - [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)
531
696
 
532
697
  ### Deprecated
533
698
 
534
- - [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
535
702
 
536
- ## v0.3.3 - 2015-01-08
703
+ ## [0.3.3] - 2015-01-08
537
704
 
538
705
  ### Fixed
539
706
 
540
- - [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`)
541
- - [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
542
711
 
543
- ## v0.3.2 - 2014-12-23
712
+ ## [0.3.2] - 2014-12-23
544
713
 
545
714
  ### Added
546
715
 
547
- - [Luca Guidi] Official support for Ruby 2.2
548
- - [Luca Guidi] Introduced `Utils::Attributes`
549
- - [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)
550
719
 
551
- ## 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
552
723
 
553
724
  ### Added
554
725
 
555
- - [Luca Guidi] Allow `Utils::Class.load!` to accept any object that implements `#to_s`
556
- - [Trung Lê] Allow `Utils::Class.load!` to accept a class
557
- - [Luca Guidi] Introduced `Utils::Class.load_from_pattern!`
558
- - [Luca Guidi] Introduced `Utils.jruby?` and `Utils.rubinius?`
559
- - [Luca Guidi] Introduced `Utils::Deprecation`
560
- - [Luca Guidi] Official support for Rubinius 2.3+
561
- - [Luca Guidi] Official support for JRuby 1.7+ (with 2.0 mode)
562
- - [Janko Marohnić] Implemented `Utils::PathPrefix` relativness and absolutness
563
- - [Luca Guidi] Made `Utils::PathPrefix` `#join` and `#relative_join` to return a new instance of that class
564
- - [Luca Guidi] Implemented `Utils::Hash#deep_dup`
565
- - [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)
566
737
 
567
738
  ### Fixed
568
739
 
569
- - [Luca Guidi] Made `Utils::PathPrefix#join` remove trailing occurrences for `@separator` from the output
570
- - [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)
571
742
 
572
743
  ### Deprecated
573
744
 
574
- - [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
575
748
 
576
- ## v0.3.0 - 2014-10-23
749
+ ## [0.3.0] - 2014-10-23
577
750
 
578
751
  ### Added
579
752
 
580
- - [Celso Fernandes] Add BigDecimal coercion to Lotus::Utils::Kernel
581
- - [Luca Guidi] Define `Boolean` constant, if missing
582
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::PathPrefix`
583
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::Hash`
584
- - [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)
585
758
 
586
759
  ### Fixed
587
760
 
588
- - [Luca Guidi] Improved error message for `Utils::Class.load!`
589
- - [Tom Kadwill] Improved error `NameError` message by passing in the whole constant name to `Utils::Class.load!`
590
- - [Luca Guidi] `Utils::Hash#to_h` return instances of `::Hash` in case of nested symbolized data structure
591
- - [Luca Guidi] Raise `TypeError` if `nil` is passed to `PathPrefix#relative_join`
592
- - [Peter Suschlik] Define `Lotus::Utils::Hash#respond_to_missing?`
593
- - [Peter Suschlik] Define `Lotus::Utils::String#responds_to_missing?`
594
- - [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
595
770
 
596
- ## v0.2.0 - 2014-06-23
771
+ ## [0.2.0] - 2014-06-23
597
772
 
598
773
  ### Added
599
774
 
600
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Symbol`
601
- - [Luca Guidi] Made `Kernel.Pathname` to raise an error when `nil` is passed as argument
602
- - [Luca Guidi] Implemented `Lotus::Utils::LoadPaths#freeze` in order to prevent modification after the object has been frozen
603
- - [Luca Guidi] Implemented Lotus::Utils::LoadPaths#push, also aliased as #<<
604
- - [Luca Guidi] Use composition over inheritance for `Lotus::Utils::LoadPaths`
605
- - [Luca Guidi] Introduced `Lotus::Utils::LoadPaths`
606
- - [Luca Guidi] Introduced `Lotus::Utils::String#namespace`, in order to return the top level Ruby namespace for the given string
607
- - [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)
608
783
 
609
784
  ### Fixed
610
785
 
611
- - [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)
612
787
 
613
788
  ### Changed
614
789
 
615
- - [Luca Guidi] Implemented `Lotus::Utils::Callbacks::Chain#freeze` in order to prevent modification after the object has been frozen
616
- - [Luca Guidi] All the `Utils::Kernel` methods will raise `TypeError` in case of failed coercion.
617
- - [Luca Guidi] Made `Kernel.Time` to raise an error when `nil` is passed as argument
618
- - [Luca Guidi] Made `Kernel.DateTime` to raise an error when `nil` is passed as argument
619
- - [Luca Guidi] Made `Kernel.Date` to raise an error when `nil` is passed as argument
620
- - [Luca Guidi] Made `Kernel.Boolean` to return false when `nil` is passed as argument
621
- - [Luca Guidi] Made `Kernel.String` to return an empty string when `nil` is passed as argument
622
- - [Luca Guidi] Made `Kernel.Float` to return `0.0` when `nil` is passed as argument
623
- - [Luca Guidi] Made `Kernel.Integer` to return `0` when `nil` is passed as argument
624
- - [Luca Guidi] Made `Kernel.Hash` to return an empty `Hash` when `nil` is passed as argument
625
- - [Luca Guidi] Made `Kernel.Set` to return an empty `Set` when `nil` is passed as argument
626
- - [Luca Guidi] Made `Kernel.Array` to return an empty `Array` when `nil` is passed as argument
627
- - [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)
628
803
 
629
- ## 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
630
807
 
631
808
  ### Added
632
809
 
633
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Time`
634
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.DateTime`
635
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Date`
636
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Float`
637
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Boolean`
638
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Hash`
639
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Set`
640
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.String`
641
- - [Luca Guidi] Implemented `Lotus::Utils::Kernel.Integer`
642
- - [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)
643
820
 
644
821
  ### Fixed
645
822
 
646
- - [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
647
826
 
648
- ## v0.1.0 - 2014-01-23
827
+ ## 0.1.0 - 2014-01-23
649
828
 
650
829
  ### Added
651
830
 
652
- - [Luca Guidi] Introduced `Lotus::Utils::String#demodulize`
653
- - [Luca Guidi] Introduced `Lotus::Utils::IO.silence_warnings`
654
- - [Luca Guidi] Introduced class loading mechanism from a string: `Utils::Class.load!`
655
- - [Luca Guidi] Introduced callbacks support for classes
656
- - [Luca Guidi] Introduced inheritable class level attributes
657
- - [Luca Guidi] Introduced `Utils::Hash`
658
- - [Luca Guidi] Introduced `Utils::String`
659
- - [Luca Guidi] Introduced `Utils::PathPrefix`
660
- - [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)