|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.16.0 - 2025-06-09 |
| 4 | + |
| 5 | +### Changed |
| 6 | + |
| 7 | +- `Model#to_h`: change choice content format. Choice content in hash is no more the value of the chosen item but a hash whose key is chosen iterm name associated with item value. |
| 8 | + |
| 9 | +### Fixed |
| 10 | + |
| 11 | +- `Model.model` helper did not use specified name to name element. This created clashes when embedding same model more than once. |
| 12 | + |
3 | 13 | ## 0.15.0 - 2025-01-03 |
4 | 14 |
|
5 | 15 | ### Changed |
6 | 16 |
|
7 | | -* `Types::Choice` may now be recursive via models and wrappers. It may define a choice using itself as an alternative. |
8 | | -* `Types::Base`: make `#do_parse`, `#do_parse_explicit` and `#der_to_value` public. The first two are marked as private API. |
9 | | -* `Types::VisibleString` is now constrained. It will raises a `ConstraintError` when using a String with a character outside of ASCII range 32 to 126. |
10 | | -* `Wrapper` is now lazy: it only allocates its inner element when needed. |
11 | | -* `Model`: simplify internal mechanics to create a model, and to populate it on initialization. |
| 17 | +- `Types::Choice` may now be recursive via models and wrappers. It may define a choice using itself as an alternative. |
| 18 | +- `Types::Base`: make `#do_parse`, `#do_parse_explicit` and `#der_to_value` public. The first two are marked as private API. |
| 19 | +- `Types::VisibleString` is now constrained. It will raises a `ConstraintError` when using a String with a character outside of ASCII range 32 to 126. |
| 20 | +- `Wrapper` is now lazy: it only allocates its inner element when needed. |
| 21 | +- `Model`: simplify internal mechanics to create a model, and to populate it on initialization. |
12 | 22 |
|
13 | 23 | ## 0.14.0 - 2024-12-28 |
14 | 24 |
|
15 | 25 | ### Removed |
16 | 26 |
|
17 | | -* Drop support for Ruby 2.7. |
| 27 | +- Drop support for Ruby 2.7. |
18 | 28 |
|
19 | 29 | ### Fixed |
20 | 30 |
|
21 | | -* `Wrapper`: correctly wrap implicit types when the enclosed element itself wasn't implicit or explicit, by smashery. |
| 31 | +- `Wrapper`: correctly wrap implicit types when the enclosed element itself wasn't implicit or explicit, by smashery. |
22 | 32 |
|
23 | 33 | ## 0.13.1 - 2024-07-13 |
24 | 34 |
|
25 | 35 | ### Changed |
26 | 36 |
|
27 | | -* Change ownership of this gem to lemontree55 |
| 37 | +- Change ownership of this gem to lemontree55 |
28 | 38 |
|
29 | 39 | ### Fixed |
30 | 40 |
|
31 | | -* Fix some rubocop offenses. |
32 | | -* KISS code |
33 | | -* Fix an issue in `Model#initialize`: handle case when root element is a `Wrapper`. |
| 41 | +- Fix some rubocop offenses. |
| 42 | +- KISS code |
| 43 | +- Fix an issue in `Model#initialize`: handle case when root element is a `Wrapper`. |
34 | 44 |
|
35 | 45 | ## 0.13.0 - 2024-01-03 |
36 | 46 |
|
37 | 47 | ### Added |
38 | 48 |
|
39 | | -* Add `Types::UniversalString`, by zeroSteiner |
| 49 | +- Add `Types::UniversalString`, by zeroSteiner |
40 | 50 |
|
41 | 51 | ### Fixed |
42 | 52 |
|
43 | | -* Allow `Types::Choice` to be optional, by zeroSteiner |
44 | | -* Fix timezone computation in `Types::GeneralizedTime`. |
| 53 | +- Allow `Types::Choice` to be optional, by zeroSteiner |
| 54 | +- Fix timezone computation in `Types::GeneralizedTime`. |
45 | 55 |
|
46 | 56 | ### Removed |
47 | 57 |
|
48 | | -* Remove support for Ruby < 2.7 |
| 58 | +- Remove support for Ruby < 2.7 |
49 | 59 |
|
50 | 60 | ## 0.12.1 - 2022-12-23 |
51 | 61 |
|
52 | 62 | ### Added |
53 | 63 |
|
54 | | -* Add parse tracing capacity. |
| 64 | +- Add parse tracing capacity. |
55 | 65 |
|
56 | 66 | ## 0.12.0 - 2022-11-12 |
57 | 67 |
|
58 | 68 | ### Added |
59 | 69 |
|
60 | | -* In `Model` class, correctly track source location for dynamic class methods, by adfoster-r7. |
61 | | -* In `Model` class, add a check on name uniqueness for embedded types. Raise a `ModelValidationError` on error, by adfoster-r7. |
62 | | -* Add `Wrapper` class to modify options of existing types or models. Add `Model.wrapper` to easily use a wrapper when defining a model, by sdaubert and adfoster-r7. |
63 | | -* Add support for BmpStrings (class `Types::BmpString`). |
| 70 | +- In `Model` class, correctly track source location for dynamic class methods, by adfoster-r7. |
| 71 | +- In `Model` class, add a check on name uniqueness for embedded types. Raise a `ModelValidationError` on error, by adfoster-r7. |
| 72 | +- Add `Wrapper` class to modify options of existing types or models. Add `Model.wrapper` to easily use a wrapper when defining a model, by sdaubert and adfoster-r7. |
| 73 | +- Add support for BmpStrings (class `Types::BmpString`). |
64 | 74 |
|
65 | 75 | ### Changed |
66 | 76 |
|
67 | | -* Rake tasks may be launched before needing presence of yard. |
68 | | -* `Types::Base#value?` and `#can_build?` are now public methods. |
69 | | -* `Types.define_type` may now create the new type in given module (`in_module` parameter). |
70 | | -* A model name may be changed using `Model.root_options`. |
| 77 | +- Rake tasks may be launched before needing presence of yard. |
| 78 | +- `Types::Base#value?` and `#can_build?` are now public methods. |
| 79 | +- `Types.define_type` may now create the new type in given module (`in_module` parameter). |
| 80 | +- A model name may be changed using `Model.root_options`. |
71 | 81 |
|
72 | 82 | ### Fixed |
73 | 83 |
|
74 | | -* Fix a frozen string crash in `Types::BitString` class, by adfoster-r7. |
75 | | -* Fix a crash in `Types::BitString#to_der` when a Bit String is defined as an explicit one, by adfoster-r7. |
76 | | -* `Types::GeneralizedTime`: parsed value is now always a `Time` and no more sometimes a `DateTime`. |
77 | | -* `Types::Sequence` and `Types::SequenceOf` DER is no more generated when optional and value is void. |
78 | | -* Fix `Model#to_h` for choice subelement, by adfoster-r7. |
| 84 | +- Fix a frozen string crash in `Types::BitString` class, by adfoster-r7. |
| 85 | +- Fix a crash in `Types::BitString#to_der` when a Bit String is defined as an explicit one, by adfoster-r7. |
| 86 | +- `Types::GeneralizedTime`: parsed value is now always a `Time` and no more sometimes a `DateTime`. |
| 87 | +- `Types::Sequence` and `Types::SequenceOf` DER is no more generated when optional and value is void. |
| 88 | +- Fix `Model#to_h` for choice subelement, by adfoster-r7. |
79 | 89 |
|
80 | 90 | ## 0.11.0 - 2022-10-13 |
81 | 91 |
|
82 | 92 | ### Added |
83 | 93 |
|
84 | | -* Add custom types. A custom type is an ASN.1 type with a custom name. Furthermore, a custom type may be constrained. |
| 94 | +- Add custom types. A custom type is an ASN.1 type with a custom name. Furthermore, a custom type may be constrained. |
85 | 95 |
|
86 | 96 | ### Fixed |
87 | 97 |
|
88 | | -* Fix Model doc: specify each element in a model must have a unique name. |
| 98 | +- Fix Model doc: specify each element in a model must have a unique name. |
89 | 99 |
|
90 | 100 | ## 0.10.0 - 2022-03-11 |
91 | 101 |
|
92 | 102 | ### Changed |
93 | 103 |
|
94 | | -* API break: behavior change of `Types::SequenceOf#<<` when it is a sequence of primitives (in ASN.1 context). Now, `#<<` acts as `Array#<<` by appending only one item to the sequence. It accepts either a primitive type object or its ruby equivalent one. |
| 104 | +- API break: behavior change of `Types::SequenceOf#<<` when it is a sequence of primitives (in ASN.1 context). Now, `#<<` acts as `Array#<<` by appending only one item to the sequence. It accepts either a primitive type object or its ruby equivalent one. |
95 | 105 |
|
96 | 106 | ### Fixed |
97 | 107 |
|
98 | | -* Fix `Types::Sequence#[]` when indexing with an integer. It always returned nil. |
| 108 | +- Fix `Types::Sequence#[]` when indexing with an integer. It always returned nil. |
99 | 109 |
|
100 | 110 | ## 0.9.0 - 2021-12-27 |
101 | 111 |
|
102 | 112 | ### Changed |
103 | 113 |
|
104 | | -* API break: Types::Base#initialize needs `:value` option to set a value. Setting a |
| 114 | +- API break: Types::Base#initialize needs `:value` option to set a value. Setting a |
105 | 115 | value as first argument is no more supported. |
106 | | -* Types::Base#inspect: add information about ASN.1 class and about tagged value. |
107 | | -* Types::Base: change how type without set value is handled internaly. Add #void_value to define 'value' when no value is set (to always have a well-defined type). |
108 | | -* Model: use a private class Elem instead of an array to define model's root. |
109 | | -* Model: simplify code. |
110 | | -* Types::Integer#enum is always a Hash. |
| 116 | +- Types::Base#inspect: add information about ASN.1 class and about tagged value. |
| 117 | +- Types::Base: change how type without set value is handled internaly. Add #void_value to define 'value' when no value is set (to always have a well-defined type). |
| 118 | +- Model: use a private class Elem instead of an array to define model's root. |
| 119 | +- Model: simplify code. |
| 120 | +- Types::Integer#enum is always a Hash. |
111 | 121 |
|
112 | 122 | ### Fixed |
113 | 123 |
|
114 | | -* Fix Types::Utf8String#der_to_value by setting @value. |
115 | | -* Fix some minor issues due to type handling (Types::Base, Types::BitString, |
| 124 | +- Fix Types::Utf8String#der_to_value by setting @value. |
| 125 | +- Fix some minor issues due to type handling (Types::Base, Types::BitString, |
116 | 126 | Types::GeneralizedTime, Types::ObjectIf, Types::Sequence and Types::SequenceOf) |
117 | | -* Types::Constructed#inspect: always show optional fields |
| 127 | +- Types::Constructed#inspect: always show optional fields |
118 | 128 |
|
119 | 129 | ### Removed |
120 | 130 |
|
121 | | -* Remove support for Ruby 2.4. |
| 131 | +- Remove support for Ruby 2.4. |
122 | 132 |
|
123 | 133 | ## 0.8.0 - 2020-12-04 |
124 | 134 |
|
125 | 135 | ### Added |
126 | 136 |
|
127 | | -* Add support for multi-byte types. This breaks API on minor methods (mainly |
| 137 | +- Add support for multi-byte types. This breaks API on minor methods (mainly |
128 | 138 | Types::Base#tag removed, partly replaced by Types::Base#id, Types.tag2type renamed into Types.id2type). |
129 | 139 |
|
130 | 140 | ### Changed |
131 | 141 |
|
132 | | -* Speed up Model#value when accessing a nested element value. |
133 | | -* Speed up and simplify Types::ObjectID#der_to_value. |
134 | | -* Clean up and refactor code. |
| 142 | +- Speed up Model#value when accessing a nested element value. |
| 143 | +- Speed up and simplify Types::ObjectID#der_to_value. |
| 144 | +- Clean up and refactor code. |
135 | 145 |
|
136 | 146 | ### Removed |
137 | 147 |
|
138 | | -* Remove support for Ruby 2.3. |
| 148 | +- Remove support for Ruby 2.3. |
139 | 149 |
|
140 | 150 | ## 0.7.1 - 2019-11-11 |
141 | 151 |
|
142 | 152 | ### Changed |
143 | 153 |
|
144 | | -* Update bundler dependency: now support bundler 2.0. |
| 154 | +- Update bundler dependency: now support bundler 2.0. |
145 | 155 |
|
146 | 156 | ## 0.7.0 - 2019-11-11 |
147 | 157 |
|
148 | 158 | ### Added |
149 | 159 |
|
150 | | -* Add RASN1::Model#value to get value of a (potentially nested) element. |
151 | | -* Add RASN1::Types::Sequence#[]. Access to element by index or by name. |
| 160 | +- Add RASN1::Model#value to get value of a (potentially nested) element. |
| 161 | +- Add RASN1::Types::Sequence#[]. Access to element by index or by name. |
152 | 162 |
|
153 | 163 | ### Changed |
154 | 164 |
|
155 | | -* Optimize RASN1::Types.tag2type. |
156 | | -* Refactoring of RASN1::Types::Base and RASN1::Types::Boolean. |
| 165 | +- Optimize RASN1::Types.tag2type. |
| 166 | +- Refactoring of RASN1::Types::Base and RASN1::Types::Boolean. |
157 | 167 |
|
158 | 168 | ### Fixed |
159 | 169 |
|
160 | | -* Add frozen_string literal on all ruby files. |
161 | | -* RASN1::Types::Base#initialize_copy raises on ruby 2.3 when @value and/or @default were nil, true, false of Integer. |
| 170 | +- Add frozen_string literal on all ruby files. |
| 171 | +- RASN1::Types::Base#initialize_copy raises on ruby 2.3 when @value and/or @default were nil, true, false of Integer. |
0 commit comments