@@ -125,3 +125,160 @@ def call(request)
125
125
# ...
126
126
end
127
127
```
128
+
129
+ ## v0.29.0
130
+
131
+ - Introduce ` rewind ` and ` rewindable? ` methods for body rewinding capabilities.
132
+ - Add support for output buffer in ` read_partial ` /` readpartial ` methods.
133
+ - ` Reader#buffered! ` now returns ` self ` for method chaining.
134
+
135
+ ## v0.28.0
136
+
137
+ - Add convenient ` Reader#buffered! ` method to buffer the body.
138
+ - Modernize gem infrastructure with RuboCop integration.
139
+
140
+ ## v0.27.0
141
+
142
+ - Expand stream interface to support ` gets ` /` puts ` operations.
143
+ - Skip empty key/value pairs in header processing.
144
+ - Prefer lowercase method names for consistency.
145
+ - Add ` as_json ` support to avoid default Rails implementation.
146
+ - Use ` @callback ` to track invocation state.
147
+ - Drop ` base64 ` gem dependency.
148
+
149
+ ## v0.26.0
150
+
151
+ - Prefer connection ` close ` over ` keep-alive ` when both are present.
152
+ - Add support for ` #readpartial ` method.
153
+ - Add ` base64 ` dependency.
154
+
155
+ ## v0.25.0
156
+
157
+ - Introduce explicit support for informational responses (1xx status codes).
158
+ - Add ` cache-control ` support for ` must-revalidate ` , ` proxy-revalidate ` , and ` s-maxage ` directives.
159
+ - Add ` #strong_match? ` and ` #weak_match? ` methods to ` ETags ` header.
160
+ - Fix ` last-modified ` , ` if-modified-since ` and ` if-unmodified-since ` headers to use proper ` Date ` parsing.
161
+ - Improve date/expires header parsing.
162
+ - Add tests for ` Stream#close_read ` .
163
+ - Check if input is closed before raising ` IOError ` .
164
+ - Ensure saved files truncate existing file by default.
165
+
166
+ ## v0.24.0
167
+
168
+ - Add output stream ` #<< ` as alias for ` #write ` .
169
+ - Add support for ` Headers#include? ` and ` #key? ` methods.
170
+ - Fix URL unescape functionality.
171
+ - Fix cookie parsing issues.
172
+ - Fix superclass mismatch in ` Protocol::HTTP::Middleware::Builder ` .
173
+ - Allow trailers without explicit ` trailer ` header.
174
+ - Fix cookie handling and Ruby 2 keyword arguments.
175
+
176
+ ## v0.23.0
177
+
178
+ - Improve argument handling.
179
+ - Rename ` path ` parameter to ` target ` to better match RFCs.
180
+
181
+ ## v0.22.0
182
+
183
+ - Rename ` trailers ` to ` trailer ` for consistency.
184
+
185
+ ## v0.21.0
186
+
187
+ - Streaming interface improvements.
188
+ - Rename ` Streamable ` to ` Completable ` .
189
+
190
+ ## v0.20.0
191
+
192
+ - Improve ` Authorization ` header implementation.
193
+
194
+ ## v0.19.0
195
+
196
+ - Expose ` Body#ready? ` for more efficient response handling.
197
+
198
+ ## v0.18.0
199
+
200
+ - Add ` #trailers ` method which enumerates trailers without marking tail.
201
+ - Don't clear trailers in ` #dup ` , move functionality to ` flatten! ` .
202
+ - All requests and responses must have mutable headers instance.
203
+
204
+ ## v0.17.0
205
+
206
+ - Remove deferred headers due to complexity.
207
+ - Remove deprecated ` Headers#slice! ` .
208
+ - Add support for static, dynamic and streaming content to ` cache-control ` model.
209
+ - Initial support for trailers.
210
+ - Add support for ` Response#not_modified? ` .
211
+
212
+ ## v0.16.0
213
+
214
+ - Add support for ` if-match ` and ` if-none-match ` headers.
215
+ - Revert ` Request#target ` change for HTTP/2 compatibility.
216
+
217
+ ## v0.15.0
218
+
219
+ - Prefer ` Request#target ` over ` Request#path ` .
220
+ - Add body implementation to support HEAD requests.
221
+ - Add support for computing digest on buffered body.
222
+ - Add ` Headers#set(key, value) ` to replace existing values.
223
+ - Add support for ` vary ` header.
224
+ - Add support for ` no-cache ` & ` no-store ` cache directives.
225
+
226
+ ## v0.14.0
227
+
228
+ - Add ` Cacheable ` body for buffering and caching responses.
229
+ - Add support for ` cache-control ` header.
230
+
231
+ ## v0.13.0
232
+
233
+ - Add support for ` connection ` header.
234
+ - Fix handling of keyword arguments.
235
+
236
+ ## v0.12.0
237
+
238
+ - Improved handling of ` cookie ` header.
239
+ - Add ` Headers#clear ` method.
240
+
241
+ ## v0.11.0
242
+
243
+ - Ensure ` Body#call ` invokes ` stream.close ` when done.
244
+
245
+ ## v0.10.0
246
+
247
+ - Allow user to specify size for character devices.
248
+
249
+ ## v0.9.1
250
+
251
+ - Add support for ` authorization ` header.
252
+
253
+ ## v0.8.0
254
+
255
+ - Remove ` reason ` from ` Response ` .
256
+
257
+ ## v0.7.0
258
+
259
+ - Explicit path handling in ` Reference#with ` .
260
+
261
+ ## v0.6.0
262
+
263
+ - Initial version with basic HTTP protocol support.
264
+
265
+ ## v0.5.1
266
+
267
+ - Fix path splitting behavior when path is empty.
268
+ - Add ` connect ` method.
269
+ - Support protocol in ` [] ` constructor.
270
+ - Incorporate middleware functionality.
271
+
272
+ ## v0.4.0
273
+
274
+ - Add ` Request ` , ` Response ` and ` Body ` classes from ` async-http ` .
275
+ - Allow deletion of non-existent header fields.
276
+
277
+ ## v0.3.0
278
+
279
+ - ** Initial release** of ` protocol-http ` gem.
280
+ - Initial implementation of HTTP/2 flow control.
281
+ - Support for connection preface and settings frames.
282
+ - Initial headers support.
283
+ - Implementation of ` Connection ` , ` Client ` & ` Server ` classes.
284
+ - HTTP/2 protocol framing and headers.
0 commit comments