File: CHANGELOG.md

package info (click to toggle)
ruby-recursive-open-struct 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 204 kB
  • sloc: ruby: 994; makefile: 6
file content (268 lines) | stat: -rw-r--r-- 9,603 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
2.0.0 / 2024/10/03
==================

* BREAKING: Restore #72, which is an API-breaking change because it changes
  what data is serialized with marshalling.

1.3.1 / 2024/10/03
==================

* FIX for
  [#79](https://github.com/aetherknight/recursive-open-struct/issues/79):
  Revert #72's change to marshalling and dumping since it is an API-breaking
  change. It will be re-added in a new major version after releasing a fix.

1.3.0 / 2024/10/01
==================

* [#72](https://github.com/aetherknight/recursive-open-struct/pull/72): Maple
  Ong: Better handle marshalling and dumping ROS
* [#78](https://github.com/aetherknight/recursive-open-struct/pull/78): Hartley
  McGuire: Add ostruct as a dependency since newer Ruby versions are going to
  remove it

1.2.2 / 2024/06/18
==================

* [#75](https://github.com/aetherknight/recursive-open-struct/pull/75): Richard
  Degenne: Fix Ruby 3.1 `#freeze`

1.2.1 / 2024/05/27
==================

* Fix a test that is flakey with JRuby

1.2.0 / 2024/05/27
==================

* [#76](https://github.com/aetherknight/recursive-open-struct/pull/76):
  IlyaUmanets: Add `raise_on_missing` option, causing ROS to raise
  `NoMethodError` instead of returning `nil` if a field doesn't exist
* MAINT: Switched to Github Actions for CI
* MAINT: No longer officially supporting Ruby versions of 3.0.x or earlier,
  updated CI to test 3.1.x, 3.2.x, 3.3.x

1.1.3 / 2020/10/15
==================

* No longer officially supporting Ruby 2.4.x, but compatiblity continues.
* [#68](https://github.com/aetherknight/recursive-open-struct/pull/68): Igor
  Victor: Add truffleruby-head to travis
* FIX [#67](https://github.com/aetherknight/recursive-open-struct/pull/67):
  Jean Boussier: Support upstream changes to OpenStruct in ruby-head (Ruby
  3.0.0-dev)

1.1.2 / 2020/06/20
==================

* FIX [#58](https://github.com/aetherknight/recursive-open-struct/pull/58):
  David Feldman: Fix `[]=` so that it properly updates sub-elements
* [#58](https://github.com/aetherknight/recursive-open-struct/pull/58):
  David Feldman: Make the default options configurable at the class level to
  simplify adding additional options in subclasses

1.1.1 / 2020/03/10
==================

* FIX [#64](https://github.com/aetherknight/recursive-open-struct/pull/64):
  Pirate Praveen: Support Ruby 2.7.0. `OpenStruct#modifiable` support was
  finally dropped, and has to be replaced with `OpenStruct#modifiable?`.
* Made some additional changes to continue supporting pre-2.4.x Rubies,
  including the current stable JRuby (9.1.x.x, which tracks Ruby 2.3.x for
  features)

1.1.0 / 2018-02-03
==================

* NEW/FIX [#56](https://github.com/aetherknight/recursive-open-struct/issues/56):
  Add better support for Ruby 2.3+'s `#dig` method (when it exists for the
  current version of Ruby), so that nested Hashes are properly converted to
  RecursiveOpenStructs. `OpenStruct#dig`'s implementation was returning Hashes
  and does not handle `recurse_over_arrays` so ROS needs special support.
  Thanks to maxp-edcast for reporting the issue.
* FIX [#55](https://github.com/aetherknight/recursive-open-struct/pull/55):
  EdwardBetts: Fixed a typo in the documentation/comment for `#method_missing`

1.0.5 / 2017-06-21
==================

* FIX [#54](https://github.com/aetherknight/recursive-open-struct/pull/54):
  Beni Cherniavsky-Paskin: Improve performance of `new_ostruct_member` by using
  `self.singleton_class.method_defined?` instead of `self.methods.include?`

1.0.4 / 2017-04-29
==================

* FIX [#52](https://github.com/aetherknight/recursive-open-struct/pull/52): Joe
  Rafaniello: Improve performance of DeepDup by using Set instead of an Array
  to track visited nodes.

1.0.3 / 2017-04-10
==================

* No longer officially supporting Ruby 2.0.0 and Ruby 2.1.x. They are still
  tested against but are permitted to fail within the Travis configuration.
* FIX: Fix subscript notation for keys that collide with existing public
  methods. Related to
  [#51](https://github.com/aetherknight/recursive-open-struct/issues/51).
* FIX [#49](https://github.com/aetherknight/recursive-open-struct/issues/49):
  Ensure test suite passes with Ruby 2.4.0-rc1.

1.0.2 / 2016-12-20
==================

* FIX [#46](https://github.com/aetherknight/recursive-open-struct/issues/46):
  Pedro Sena: fix issues with mutating arrays within an ROS that has
  `recurse_over_arrays: true`

1.0.1 / 2016-01-18
==================

* FIX [#42](https://github.com/aetherknight/recursive-open-struct/issues/42):
  `[]` tried to call private methods if they existed instead of triggering the
  `method_missing` code path. Thanks to @SaltwaterC for reporting.

1.0.0 / 2015-12-11
==================

* API-Breaking Change: Frederico Aloi: Change `to_h` to always return symbol
  keys. This is more consistent with OpenStruct.
* API-Breaking Change: No longer officially supporting Ruby 1.9.3.
* NEW/FIX: Kris Dekeyser: Ensure that ROS continues to work with the new
  version of OpenStruct included in dev versions of Ruby 2.2.x and Ruby 2.3. It
  now implements lazy attribute creation, which broke ROS.
* NEW: Added `preserve_original_keys` option to revert to the 0.x behavior. Set
  it to true if you want methods like `to_h` to return strings and perhaps
  other non-symbols.
* NEW: Ensuring support for Ruby 2.0.0+ including the upcoming 2.3 release and
  JRuby 9000.
* FIX: Peter Yeremenko: Fix a mistake in one of the examples in the README

0.6.5 / 2015-06-30
==================

* FIX: Fix ROS when initialized with nil instead of a hash.

0.6.4 / 2015-05-20
==================

* FIX: Kris Dekeyser: Fix indifferent subscript access (string or symbol). Also
  backported several ostruct methods for Ruby 1.9.x.
* FIX: Partial fix for allowing an array in a RecursiveOpenStruct tree to be
  modified. However, methods such as to_hash are still broken.

0.6.3 / 2015-04-11
==================

* FIX: Thiago Guimaraes: Restore being able to create an ROS from a hash that
  contains strings for keys instead of symbols for keys.

0.6.2 / 2015-04-07
==================

* FIX: fervic: Address a bug in the Ruby 1.9's version of OpenStruct's `dup`
* FIX: Victor Guzman: Reset memoized values on assignment in order to force the
  implementation to re-memoize them.
* MAINT: fervic: Simplified `initialize`

0.6.1 / 2015-03-28
==================

* FIX: Actually ensure that the internal @table is properly dependent or
  independent of the input hash tree. I mistakenly refactored away an important
  piece of code that fervic added.
* FIX: Actually ensure that `#dup` works.
* Also refactored how `#to_h` is implemented to use newer plumbing.

0.6.0 / 2015-03-28
==================

* NEW: fervic: Make subscript notation be recursive like dot-method notation
* NEW: fervic: Added a new option, `:mutate_input_hash`, that allows the caller
  to determine whether the original hash is mutated or not when a nested value
  in the ROS tree is modified. If false (the default), the ROS will not modify
  the original hash tree. If tree, changes within the ROS tree will also be
  reflected in the hash tree.
* FIX: fervic: Setting/updating a value nested deep in an ROS tree is kept
  when the top-level ROS object is duped.
* MAINT: Extracted `#deep_dup` added by fervic into its own class. This makes it
  possibly easier to use/copy for others, and it cleans up the main class file.
* MAINT: Moved `#debug_inspect` out to its own module. This cleans up the main
  class file a bit. It is also something I may remove if I ever have a major
  version bump.
* MAINT: Adding MRI 2.2 to Travis-CI

0.5.0 / 2014-06-14
==================

* NEW: Tom Chapin: Added a `#to_hash` alias for `#to_h`
* MAINT: Added Travis-CI support. Testing against MRI 1.9.3, MRI 2.0, MRI 2.1,
  and JRuby in 1.9 mode. Not aiming to support 1.8.7 since it has been nearly a
  year since it has officially been retired.

0.4.5 / 2013-10-23
==================

* FIX: Matt Culpepper: Allow ROS subclasses to use their own type when creating
  nested objects in the tree.

0.4.4 / 2013-08-28
==================

* FIX: Ensure proper file permissions when building the gem archive

0.4.3 / 2013-05-30
==================

* FIX: Sebastian Gaul: Make `recurse_over_arrays` option work on more
  deeply-nested hashes.

0.4.2 / 2013-05-29
==================

* FIX: Setting a value on a nested element, then getting that value should show
  the updated value
* FIX: Calling `#to_h` on the top-level ROS object also reflects changed nested
  elements.

0.4.1 / 2013-05-28
==================

* FIX: Fixing the `spec:coverage` Rake task

0.4.0 / 2013-05-26
==================

* NEW: Added `#to_h`
* MAINT: Stopped using jeweler for gem development/packaging

0.3.1 / 2012-10-23
==================

* FIX: Cédric Felizard: Fix to make it work with MRI 1.8.7 again
* MAINT: More spec fixups to improve spec runs on MRI 1.9.3

0.3.0 / 2013-10-23
==================

* NEW: Matthew O'Riordan: Add support for recursion working over Arrays
* NEW: Made recursion over Arrays optional with `recurse_over_arrays` option.
* NEW: Improving `#debug_inspect` so that it can use any IO object, not just
  STDOUT.
* MAINT: Much cleanup of development dependencies, README file, etc.

0.2.1 / 2011-05-31
==================

* FIX: Offirmo: Slight improvement for `#debug_inspect`

0.2.0 / 2011-05-25
==================

* NEW: Offirmo: Added `debug_inspect`
* MAINT: Offirmo: Worked the development files so that it can be built as a gem

0.1.0 / 2010-01-12
==================

* Initial release