roda 3.83.0 → 3.85.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/lib/roda/plugins/Integer_matcher_max.rb +9 -8
  3. data/lib/roda/plugins/_optimized_matching.rb +2 -2
  4. data/lib/roda/plugins/_symbol_class_matchers.rb +107 -0
  5. data/lib/roda/plugins/capture_erb.rb +6 -5
  6. data/lib/roda/plugins/class_matchers.rb +91 -14
  7. data/lib/roda/plugins/hsts.rb +35 -0
  8. data/lib/roda/plugins/placeholder_string_matchers.rb +4 -0
  9. data/lib/roda/plugins/public.rb +1 -1
  10. data/lib/roda/plugins/render.rb +1 -1
  11. data/lib/roda/plugins/symbol_matchers.rb +70 -15
  12. data/lib/roda/request.rb +16 -13
  13. data/lib/roda/response.rb +1 -1
  14. data/lib/roda/version.rb +1 -1
  15. data/lib/roda.rb +7 -0
  16. metadata +5 -179
  17. data/CHANGELOG +0 -691
  18. data/README.rdoc +0 -1136
  19. data/doc/conventions.rdoc +0 -177
  20. data/doc/release_notes/3.0.0.txt +0 -84
  21. data/doc/release_notes/3.1.0.txt +0 -24
  22. data/doc/release_notes/3.10.0.txt +0 -132
  23. data/doc/release_notes/3.11.0.txt +0 -54
  24. data/doc/release_notes/3.12.0.txt +0 -19
  25. data/doc/release_notes/3.13.0.txt +0 -38
  26. data/doc/release_notes/3.14.0.txt +0 -36
  27. data/doc/release_notes/3.14.1.txt +0 -43
  28. data/doc/release_notes/3.15.0.txt +0 -21
  29. data/doc/release_notes/3.16.0.txt +0 -52
  30. data/doc/release_notes/3.17.0.txt +0 -62
  31. data/doc/release_notes/3.18.0.txt +0 -170
  32. data/doc/release_notes/3.19.0.txt +0 -229
  33. data/doc/release_notes/3.2.0.txt +0 -22
  34. data/doc/release_notes/3.20.0.txt +0 -7
  35. data/doc/release_notes/3.21.0.txt +0 -5
  36. data/doc/release_notes/3.22.0.txt +0 -24
  37. data/doc/release_notes/3.23.0.txt +0 -28
  38. data/doc/release_notes/3.24.0.txt +0 -14
  39. data/doc/release_notes/3.25.0.txt +0 -12
  40. data/doc/release_notes/3.26.0.txt +0 -15
  41. data/doc/release_notes/3.27.0.txt +0 -15
  42. data/doc/release_notes/3.28.0.txt +0 -13
  43. data/doc/release_notes/3.29.0.txt +0 -15
  44. data/doc/release_notes/3.3.0.txt +0 -291
  45. data/doc/release_notes/3.30.0.txt +0 -14
  46. data/doc/release_notes/3.31.0.txt +0 -11
  47. data/doc/release_notes/3.32.0.txt +0 -42
  48. data/doc/release_notes/3.33.0.txt +0 -8
  49. data/doc/release_notes/3.34.0.txt +0 -17
  50. data/doc/release_notes/3.35.0.txt +0 -12
  51. data/doc/release_notes/3.36.0.txt +0 -17
  52. data/doc/release_notes/3.37.0.txt +0 -42
  53. data/doc/release_notes/3.38.0.txt +0 -5
  54. data/doc/release_notes/3.39.0.txt +0 -16
  55. data/doc/release_notes/3.4.0.txt +0 -24
  56. data/doc/release_notes/3.40.0.txt +0 -24
  57. data/doc/release_notes/3.41.0.txt +0 -9
  58. data/doc/release_notes/3.42.0.txt +0 -21
  59. data/doc/release_notes/3.43.0.txt +0 -34
  60. data/doc/release_notes/3.44.0.txt +0 -23
  61. data/doc/release_notes/3.45.0.txt +0 -22
  62. data/doc/release_notes/3.46.0.txt +0 -19
  63. data/doc/release_notes/3.47.0.txt +0 -13
  64. data/doc/release_notes/3.48.0.txt +0 -10
  65. data/doc/release_notes/3.49.0.txt +0 -18
  66. data/doc/release_notes/3.5.0.txt +0 -31
  67. data/doc/release_notes/3.50.0.txt +0 -21
  68. data/doc/release_notes/3.51.0.txt +0 -20
  69. data/doc/release_notes/3.52.0.txt +0 -20
  70. data/doc/release_notes/3.53.0.txt +0 -14
  71. data/doc/release_notes/3.54.0.txt +0 -48
  72. data/doc/release_notes/3.55.0.txt +0 -12
  73. data/doc/release_notes/3.56.0.txt +0 -33
  74. data/doc/release_notes/3.57.0.txt +0 -34
  75. data/doc/release_notes/3.58.0.txt +0 -16
  76. data/doc/release_notes/3.59.0.txt +0 -17
  77. data/doc/release_notes/3.6.0.txt +0 -21
  78. data/doc/release_notes/3.60.0.txt +0 -56
  79. data/doc/release_notes/3.61.0.txt +0 -24
  80. data/doc/release_notes/3.62.0.txt +0 -41
  81. data/doc/release_notes/3.63.0.txt +0 -36
  82. data/doc/release_notes/3.64.0.txt +0 -26
  83. data/doc/release_notes/3.65.0.txt +0 -12
  84. data/doc/release_notes/3.66.0.txt +0 -23
  85. data/doc/release_notes/3.67.0.txt +0 -25
  86. data/doc/release_notes/3.68.0.txt +0 -21
  87. data/doc/release_notes/3.69.0.txt +0 -33
  88. data/doc/release_notes/3.7.0.txt +0 -123
  89. data/doc/release_notes/3.70.0.txt +0 -19
  90. data/doc/release_notes/3.71.0.txt +0 -33
  91. data/doc/release_notes/3.72.0.txt +0 -48
  92. data/doc/release_notes/3.73.0.txt +0 -33
  93. data/doc/release_notes/3.74.0.txt +0 -28
  94. data/doc/release_notes/3.75.0.txt +0 -19
  95. data/doc/release_notes/3.76.0.txt +0 -18
  96. data/doc/release_notes/3.77.0.txt +0 -8
  97. data/doc/release_notes/3.78.0.txt +0 -99
  98. data/doc/release_notes/3.79.0.txt +0 -148
  99. data/doc/release_notes/3.8.0.txt +0 -27
  100. data/doc/release_notes/3.80.0.txt +0 -31
  101. data/doc/release_notes/3.81.0.txt +0 -24
  102. data/doc/release_notes/3.82.0.txt +0 -43
  103. data/doc/release_notes/3.83.0.txt +0 -6
  104. data/doc/release_notes/3.9.0.txt +0 -67
data/CHANGELOG DELETED
@@ -1,691 +0,0 @@
1
- = 3.83.0 (2024-08-12)
2
-
3
- * Add assume_ssl plugin for making request ssl? method always return true (jeremyevans)
4
-
5
- = 3.82.0 (2024-07-12)
6
-
7
- * Add :encodings option to public plugin to support configurable encoding order (jeremyevans)
8
-
9
- * Add :zstd option to public plugin to supplement it to serve zstd-compressed files with .zst extension (jeremyevans)
10
-
11
- * Make capture_erb plugin call integrate better with erubi/capture_block (jeremyevans)
12
-
13
- = 3.81.0 (2024-06-12)
14
-
15
- * Make assets plugin :early_hints option follow Rack 3 SPEC if using Rack 3 (jeremyevans)
16
-
17
- * Correctly parse Ruby 3.4 backtraces in exception_page plugin (jeremyevans)
18
-
19
- * Support :until and :seconds option in hmac_paths plugin, for paths valid only until a specific time (jeremyevans)
20
-
21
- = 3.80.0 (2024-05-10)
22
-
23
- * Support :namespace option in hmac_paths plugin, allowing for easy per-user/per-group HMAC paths (jeremyevans)
24
-
25
- = 3.79.0 (2024-04-12)
26
-
27
- * Do not update template mtime when there is an error reloading templates in the render plugin (jeremyevans)
28
-
29
- * Add hmac_paths plugin for preventing path enumeration and supporting access control (jeremyevans)
30
-
31
- = 3.78.0 (2024-03-13)
32
-
33
- * Add permissions_policy plugin for setting Permissions-Policy header (jeremyevans)
34
-
35
- = 3.77.0 (2024-02-12)
36
-
37
- * Support formaction/formmethod attributes in forms in route_csrf plugin (jeremyevans)
38
-
39
- = 3.76.0 (2024-01-12)
40
-
41
- * Support :filter plugin option in error_mail and error_email for filtering parameters, environment variables, and session values (jeremyevans) (#346)
42
-
43
- * Set temporary name on Ruby 3.3 in middleware plugin for middleware class created (janko) (#344)
44
-
45
- * Add break plugin, for using break inside a routing block to return from the block and keep routing (jeremyevans)
46
-
47
- = 3.75.0 (2023-12-14)
48
-
49
- * Add cookie_flags plugin, for overriding, warning, or raising for incorrect cookie flags (jeremyevans)
50
-
51
- = 3.74.0 (2023-11-13)
52
-
53
- * Add redirect_http_to_https plugin, helping to ensure future requests from the browser are submitted via HTTPS (jeremyevans)
54
-
55
- = 3.73.0 (2023-10-13)
56
-
57
- * Support :next_if_not_found option for middleware plugin (jeremyevans) (#334)
58
-
59
- * Remove dependency on base64 library from sessions and route_csrf plugin, as it will not be part of the standard library in Ruby 3.4+ (jeremyevans)
60
-
61
- = 3.72.0 (2023-09-12)
62
-
63
- * Add invalid_request_body plugin for custom handling of invalid request bodies (jeremyevans)
64
-
65
- * Warn when defining method that expects 1 argument when block requires multiple arguments when :check_arity option is set to :warn (jeremyevans)
66
-
67
- * Implement the match_hooks plugin using the match_hook_args plugin (jeremyevans)
68
-
69
- = 3.71.0 (2023-08-14)
70
-
71
- * Add match_hook_args plugin, similar to match_hooks but support matchers and block args as hook arguments (jeremyevans)
72
-
73
- = 3.70.0 (2023-07-12)
74
-
75
- * Add plain_hash_response_headers plugin, using a plain hash for response headers on Rack 3 for much better performance (jeremyevans)
76
-
77
- * Use lower case response header keys by default on Rack 3, instead of relying on Rack::Headers conversion (jeremyevans)
78
-
79
- = 3.69.0 (2023-06-13)
80
-
81
- * Allow symbol_matcher in symbol_matchers plugin to take a block to allow type conversion (jeremyevans)
82
-
83
- = 3.68.0 (2023-05-11)
84
-
85
- * Make Roda.run in multi_run plugin accept blocks to allow autoloading the apps to dispatch to (jeremyevans)
86
-
87
- = 3.67.0 (2023-04-12)
88
-
89
- * Add custom_block_results plugin for registering custom block result handlers (jeremyevans)
90
-
91
- = 3.66.0 (2023-03-13)
92
-
93
- * Support overriding exception page assets via exception_page_{css,js} instance methods (jeremyevans) (#306)
94
-
95
- * Avoid keeping reference to Roda instance that caches an inline template (jeremyevans)
96
-
97
- * Add render_coverage plugin, using tilt 2.1 features to allow for compiled templates in Ruby <3.2 (jeremyevans)
98
-
99
- = 3.65.0 (2023-02-13)
100
-
101
- * Make indifferent_params plugin work with changes in rack main branch (jeremyevans)
102
-
103
- * Add autoload_named_routes plugin for autoloading file for a named route when there is a request for that route (jeremyevans)
104
-
105
- * Make path method in path plugin accept class name string/symbol with :class_name option to register classes without forcing autoloads (jeremyevans)
106
-
107
- = 3.64.0 (2023-01-12)
108
-
109
- * Automatically expand paths for autoload_hash_branches files, so that relative paths work (jeremyevans)
110
-
111
- * Make autoload_hash_branches plugin eagerly load the branches when freezing the application (jeremyevans)
112
-
113
- * Add erb_h plugin for faster (if slightly less safe) html escaping using erb/escape (jeremyevans)
114
-
115
- = 3.63.0 (2022-12-16)
116
-
117
- * Make mailer plugin set configured content type for body part for emails with attachments when using mail 2.8+ (jeremyevans)
118
-
119
- * Add autoload_hash_branches plugin for autoloading file for a hash branch when there is a request for that branch (jeremyevans)
120
-
121
- * Add mailer plugin :terminal option to make r.mail use a terminal match when provided arguments (jeremyevans)
122
-
123
- = 3.62.0 (2022-11-14)
124
-
125
- * Add typecast_params_sized_integers plugin for converting parameters to sized integers (jeremyevans)
126
-
127
- * Add Integer_matcher_max plugin for setting maximum integer value matched by the Integer matcher (jeremyevans)
128
-
129
- * Allow class matchers in the class_matchers plugin to skip matching based on regexp match values (jeremyevans)
130
-
131
- * Fix RodaRequest#matched_path when using unescape_path plugin (jeremyevans) (#286)
132
-
133
- = 3.61.0 (2022-10-12)
134
-
135
- * Make Integer matcher limit integer segments to 100 characters by default (jeremyevans)
136
-
137
- * Limit input bytesize by default for integer, float, and date/time typecasts in typecast_params (jeremyevans)
138
-
139
- = 3.60.0 (2022-09-13)
140
-
141
- * Add link_to plugin with link_to method for creating HTML links (jeremyevans)
142
-
143
- = 3.59.0 (2022-08-12)
144
-
145
- * Add additional_render_engines plugin, for considering multiple render engines for templates (jeremyevans)
146
-
147
- * Fix typo in private method name in delete_empty_headers plugin (mculpt) (#279)
148
-
149
- = 3.58.0 (2022-07-13)
150
-
151
- * Add filter_common_logger plugin for skipping the logging of certain requests when using the common_logger plugin (jeremyevans)
152
-
153
- * Make exception_page plugin use Exception#detailed_message on Ruby 3.2+ (jeremyevans)
154
-
155
- * Make heartbeat plugin compatible with recent changes in the rack master branch (jeremyevans)
156
-
157
- = 3.57.0 (2022-06-14)
158
-
159
- * Make static_routing plugin depend on the hash_paths instead of the hash_routes plugin (jeremyevans)
160
-
161
- * Split hash_branches and hash_paths plugins from hash_routes plugin (jeremyevans)
162
-
163
- * Hex escape unprintable characters in common_logger plugin output (jeremyevans)
164
-
165
- * Add hash_branch_view_subdir plugin for automatically appending a view subdirectory on a successful hash branch (jeremyevans)
166
-
167
- = 3.56.0 (2022-05-13)
168
-
169
- * Make status_303 plugin use 303 responses for HTTP/2 and higher versions (jeremyevans)
170
-
171
- * Add RodaRequest#http_version for determining the HTTP version in use (jeremyevans)
172
-
173
- * Do not set a body for 405 responses when using the verb methods in the not_allowed plugin (jeremyevans) (#267)
174
-
175
- * Support status_handler method :keep_headers option in status_handler plugin (jeremyevans) (#267)
176
-
177
- * Make not_allowed plugin have r.root return 405 responses for non-GET requests (jeremyevans) (#266)
178
-
179
- * In Rack 3, only require the parts of rack used by Roda, instead of requiring rack itself and relying on autoload (jeremyevans)
180
-
181
- * Add run_require_slash plugin, for skipping application dispatch for remaining paths that would violate Rack SPEC (jeremyevans)
182
-
183
- = 3.55.0 (2022-04-12)
184
-
185
- * Allow passing blocks to the view method in the render plugin (jeremyevans) (#262)
186
-
187
- * Add :forward_response_headers middleware plugin option to use app headers as default for response (janko) (#259)
188
-
189
- = 3.54.0 (2022-03-14)
190
-
191
- * Make chunked plugin not use Transfer-Encoding: chunked by default (jeremyevans)
192
-
193
- * Make run_handler plugin close bodies for upstream 404 responses when using not_found: :pass (jeremyevans)
194
-
195
- * Drop all 1xx bodies in the drop body plugin (jeremyevans)
196
-
197
- * Do not set a Content-Length header for 205 responses on Rack <2.0.2 (jeremyevans)
198
-
199
- * Use Rack::Files instead of Rack::File if available, to avoid deprecation warnings (jeremyevans)
200
-
201
- * Work with Rack 3 SPEC, using Rack::Headers to handle lowercasing header keys on Rack 3 (jeremyevans)
202
-
203
- * Allow overriding script tag type attribute returned by assets method in assets plugin (pusewicz) (#250)
204
-
205
- * Make reloading render plugin after additional_view_directories plugin retain :allowed_paths (jeremyevans)
206
-
207
- = 3.53.0 (2022-02-14)
208
-
209
- * Make indifferent_params plugin support rack main branch (jeremyevans)
210
-
211
- * Add additional_view_directories plugin, for checking multiple view directories for templates (jeremyevans) (#229)
212
-
213
- = 3.52.0 (2022-01-14)
214
-
215
- * Fix return value of Roda.freeze when multi_route plugin is used (jeremyevans) (#240)
216
-
217
- * Use faster OpenSSL::Digest instead of Digest for assets plugin SRI support (jeremyevans)
218
-
219
- * Drop development dependency on haml (jeremyevans)
220
-
221
- * Make the path method in the path plugin handle blocks that accept keyword arguments in Ruby 3+ (adam12) (#227)
222
-
223
- * Support typecast_params :date_parse_input_handler plugin option for handling input to date parsing methods (jeremyevans)
224
-
225
- = 3.51.0 (2021-12-15)
226
-
227
- * Avoid method redefinition warning in error_handler plugin in verbose warning mode (jeremyevans)
228
-
229
- * Allow run in multi_run plugin to be called without an app to remove existing handler (jeremyevans)
230
-
231
- * Allow route in named_routes plugin to be called without a block to remove existing handler (jeremyevans)
232
-
233
- = 3.50.0 (2021-11-12)
234
-
235
- * Add capture_erb plugin for capturing ERB template blocks, instead of injecting them into the template output (jeremyevans)
236
-
237
- * Add inject_erb plugin for injecting content directly into ERB template output (jeremyevans)
238
-
239
- * Allow hash_branch and hash_path in hash_routes plugin to be called without a block to remove existing handler (jeremyevans)
240
-
241
- = 3.49.0 (2021-10-13)
242
-
243
- * Switch block_given? to defined?(yield) (jeremyevans)
244
-
245
- * Automatically optimize remaining r.is/r.get/r.post calls with a single argument (jeremyevans)
246
-
247
- = 3.48.0 (2021-09-13)
248
-
249
- * Extract named_routes plugin from multi_route plugin (jeremyevans)
250
-
251
- = 3.47.0 (2021-08-13)
252
-
253
- * Automatically optimize remaining r.on calls with a single argument (jeremyevans)
254
-
255
- = 3.46.0 (2021-07-12)
256
-
257
- * Automatically optimize r.on/r.is/r.get/r.post methods with a single string, String, Integer, or regexp argument (jeremyevans)
258
-
259
- = 3.45.0 (2021-06-14)
260
-
261
- * Make typecast_params plugin check for null bytes in strings by default, with :allow_null_bytes option for previous behavior (jeremyevans)
262
-
263
- = 3.44.0 (2021-05-12)
264
-
265
- * Add optimized_segment_matchers plugin for optimized matchers for a single String class argument (jeremyevans)
266
-
267
- * Use RFC 5987 UTF-8 and ISO-8859-1 encoded filenames when using send_file and attachment in the sinatra_helpers plugin (jeremyevans)
268
-
269
- = 3.43.1 (2021-04-13)
270
-
271
- * [SECURITY] Fix issue where loading content_security_policy plugin after default_headers plugin had no effect (jeremyevans)
272
-
273
- = 3.43.0 (2021-04-12)
274
-
275
- * Add host_authorization plugin, for checking that requests are submitted using an approved host (jeremyevans)
276
-
277
- = 3.42.0 (2021-03-12)
278
-
279
- * Make Roda.plugin support plugins using keyword arguments in Ruby 3 (jeremyevans)
280
-
281
- * Make Roda.use support middleware using keyword arguments in Ruby 3 (pat) (#207)
282
-
283
- * Support common_logger plugin :method option for specifying the method to call on the logger (fnordfish, jeremyevans) (#206)
284
-
285
- * Add recheck_precompiled_assets plugin for checking for updates to the precompiled asset metadata file (jeremyevans)
286
-
287
- * Make compile_assets class method in assets plugin use an atomic approach to writing precompiled metadata file (jeremyevans)
288
-
289
- = 3.41.0 (2021-02-17)
290
-
291
- * Improve view performance with :content option up to 3x by calling compiled template methods directly (jeremyevans)
292
-
293
- = 3.40.0 (2021-01-14)
294
-
295
- * Add freeze_template_caches! to the precompile_templates plugin, which ensures all templates are precompiled, and speeds up template access (jeremyevans)
296
-
297
- * Add precompile_views to the precompile_templates plugin, which precompiles the optimized render methods (jeremyevans)
298
-
299
- * Have RodaCache#freeze return the frozen internal hash (which no longer needs a mutex for thread-safety) (jeremyevans)
300
-
301
- * Speed up the view method in the render plugin even more when freezing the application (jeremyevans)
302
-
303
- * Speed up the view method in the render plugin when called with a single argument (jeremyevans)
304
-
305
- = 3.39.0 (2020-12-15)
306
-
307
- * Speed up relative_path plugin if relative_path or relative_prefix is called more than once (jeremyevans)
308
-
309
- * Avoid method redefinition warnings in verbose warning mode (jeremyevans)
310
-
311
- * Make typecast_params.convert! handle explicit nil values the same as missing values (jeremyevans)
312
-
313
- = 3.38.0 (2020-11-16)
314
-
315
- * Make error_email and error_mail plugins rescue invalid parameter errors when preparing the email body (jeremyevans)
316
-
317
- = 3.37.0 (2020-10-16)
318
-
319
- * Add custom_matchers plugin, for supporting arbitrary objects as matchers (jeremyevans)
320
-
321
- = 3.36.0 (2020-09-14)
322
-
323
- * Add multi_public plugin, for serving files from multiple public directories (jeremyevans)
324
-
325
- * Support report-to directive in the content_security_policy plugin (jeremyevans)
326
-
327
- * Add Vary response header when using type_routing plugin with Accept request header to prevent caching issues (jeremyevans)
328
-
329
- = 3.35.0 (2020-08-14)
330
-
331
- * Add r plugin for r method for accessing request, useful when r local variable is not in scope (jeremyevans)
332
-
333
- * Warn when loading a plugin with arguments or a block if the plugin does not accept arguments or block (jeremyevans)
334
-
335
- = 3.34.0 (2020-07-14)
336
-
337
- * Remove unnecessary conditionals (jeremyevans)
338
-
339
- * Allow loading the match_affix plugin with a single argument (jeremyevans)
340
-
341
- * Do not include pre/post context sections if empty in the exception_page plugin (jeremyevans)
342
-
343
- = 3.33.0 (2020-06-16)
344
-
345
- * Add :brotli option to public plugin to supplement it to serve brotli-compressed files like :gzip does for gzipped files (hmdne) (#194)
346
-
347
- * Add url method to path plugin, similar to path but returning the entire URL (jeremyevans)
348
-
349
- = 3.32.0 (2020-05-15)
350
-
351
- * Make :dependencies option in assets plugin work correctly with render plugin template caching (jeremyevans) (#191)
352
-
353
- * Support render method :dependencies option for specifying which files to check for modification (jgarth, jeremyevans) (#192)
354
-
355
- * Add each_partial to the partials plugin for rendering a partial for each element in an enumerable (jeremyevans)
356
-
357
- * Make render_each in render_each plugin handle template names with directories and extensions (jeremyevans)
358
-
359
- = 3.31.0 (2020-04-15)
360
-
361
- * Add :relative option to path method in path plugin, for generating a method returning relative paths (jeremyevans)
362
-
363
- * Add relative_path plugin, for turning absolute paths to paths relative to the current request (jeremyevans)
364
-
365
- = 3.30.0 (2020-03-13)
366
-
367
- * Support :relative_paths assets plugin option to use relative paths for the assets (jeremyevans)
368
-
369
- * Make run_append_slash and run_handler plugins work when used together (janko) (#185)
370
-
371
- * Make :header matcher in header_matchers plugin work for Content-Type and Content-Length (jeremyevans) (#184)
372
-
373
- = 3.29.0 (2020-02-14)
374
-
375
- * Remove specs and old release notes from the gem to reduce gem size by over 35% (jeremyevans)
376
-
377
- * Raise RodaError if trying to load a plugin that is not a module (jeremyevans)
378
-
379
- * Include SCRIPT_NAME when logging in common logger plugin (jeremyevans)
380
-
381
- * Handle invalid POST data when using the exception_page plugin (jeremyevans)
382
-
383
- = 3.28.0 (2020-01-15)
384
-
385
- * Add session_created_at and session_updated_at methods to the sessions plugin (jeremyevans)
386
-
387
- * Make upgrading from rack session cookie in sessions plugin work with rack 2.0.8 (jeremyevans)
388
-
389
- * Make json_parser parse request body as json even if request body has already been read (jeremyevans)
390
-
391
- = 3.27.0 (2019-12-13)
392
-
393
- * Allow json_parser return correct result for invalid JSON if the params_capturing plugin is used (jeremyevans) (#180)
394
-
395
- * Add multibyte_string_matcher plugin for matching multibyte characters (jeremyevans)
396
-
397
- * Split roda.rb into separate files (janko) (#177)
398
-
399
- = 3.26.0 (2019-11-18)
400
-
401
- * Combine multiple asset files with a newline when compiling them, avoiding corner cases with comments (ameuret) (#176)
402
-
403
- * Add asychronous streaming support to the streaming plugin (janko) (#175)
404
-
405
- = 3.25.0 (2019-10-15)
406
-
407
- * Support change in tilt 2.0.10 private API to continue to support compiled templates, with up to 33% performance improvement (jeremyevans)
408
-
409
- * Improve render performance with :locals option up to 75% by calling compiled template methods directly (jeremyevans)
410
-
411
- = 3.24.0 (2019-09-13)
412
-
413
- * Fix Proc.new warning in module_include plugin on Ruby 2.7+ (jeremyevans)
414
-
415
- * Improve render_each performance by calling compiled template methods directly (jeremyevans)
416
-
417
- = 3.23.0 (2019-08-13)
418
-
419
- * Make roda/session_middleware work if type_routing plugin is loaded into Roda itself (jeremyevans) (#169)
420
-
421
- * Handle requests with nothing before extension in the path in the type_routing plugin (jeremyevans) (#168)
422
-
423
- * Always show line number in exception_page output in exception_page plugin (jeremyevans)
424
-
425
- * Improve render/view performance up to 2x in development mode in the default case by calling compiled template methods directly (jeremyevans)
426
-
427
- = 3.22.0 (2019-07-12)
428
-
429
- * Improve render performance up to 4x in the default case by calling compiled template methods directly (jeremyevans)
430
-
431
- = 3.21.0 (2019-06-14)
432
-
433
- * Cache compiled templates in development mode, until the template files are modified (jeremyevans)
434
-
435
- = 3.20.0 (2019-05-16)
436
-
437
- * Set Content-Length header to 0 for empty 205 responses (jeremyevans)
438
-
439
- = 3.19.0 (2019-04-12)
440
-
441
- * Allow assets plugin :timestamp_paths option to be a string to specify a custom separator (jeremyevans)
442
-
443
- * Fix handling for blocks with arity > 1 where expected arity is 1 (jeremyevans)
444
-
445
- * Improve performance for handling blocks with arity 0 where expected arity is 1 by avoiding instance_exec (jeremyevans)
446
-
447
- * Improve terminal maching by around 4x (jeremyevans)
448
-
449
- * Improve symbol matching by 10-20% (jeremyevans)
450
-
451
- * Improve string matching by 10-20% (jeremyevans)
452
-
453
- * Automatically load the direct_call plugin when freezing if no middleware is used for better performance (jeremyevans)
454
-
455
- * Delay building rack app until Roda.app is called (jeremyevans)
456
-
457
- * Add hash_routes plugin for O(1) route dispatching at any level in the routing tree (jeremyevans)
458
-
459
- * Add support for per-cookie cipher secrets in the sessions plugin, and enable them by default (jeremyevans)
460
-
461
- * Add match_hook plugin for calling hooks when there is a successful match block (adam12) (#164)
462
-
463
- = 3.18.0 (2019-03-15)
464
-
465
- * Add direct_call plugin for making Roda.call skip middleware, allowing more optimization when dispatching routes (jeremyevans)
466
-
467
- * Improve performance of default_headers plugin by directly defining set_default_headers (jeremyevans)
468
-
469
- * Improve performance when freezing app if certain methods have not been overridden (jeremyevans)
470
-
471
- * Support :check_arity and :check_dynamic_arity app options for whether/how to check arity for blocks used to define methods (jeremyevans)
472
-
473
- * Improve performance of the status_handler plugin by using methods instead of instance_exec (jeremyevans)
474
-
475
- * Remove r.static_route method from the static_routing plugin (jeremyevans)
476
-
477
- * Improve performance of the static_routing plugin by using methods instead of instance_exec (jeremyevans)
478
-
479
- * Add support for the route_block_args plugin to the route_csrf plugin (jeremyevans)
480
-
481
- * Improve performance of the route_csrf plugin by using a method instead of instance_exec (jeremyevans)
482
-
483
- * Improve performance of the route_block_args plugin by using a method instead of instance_exec (jeremyevans)
484
-
485
- * Improve performance of the path plugin by using methods instead of instance_exec (jeremyevans)
486
-
487
- * Improve performance of the named_templates plugin by using methods instead of instance_exec (jeremyevans)
488
-
489
- * Improve performance of the multi_route plugin by using methods instead of instance_exec (jeremyevans)
490
-
491
- * Improve performance of the hooks plugin by using methods instead of instance_exec (jeremyevans)
492
-
493
- * Improve performance of the mail_processor plugin by using methods instead of instance_exec (jeremyevans)
494
-
495
- * Improve performance of the default_status plugin by directly defining the default_status method (jeremyevans)
496
-
497
- * Improve performance of class_level_routing plugin using methods instead of instance_exec (jeremyevans)
498
-
499
- * Do not have route_block_args plugin affect class_level_routes plugin (jeremyevans)
500
-
501
- * Integrate internal after hook with error_handler plugin (jeremyevans)
502
-
503
- * Improve performance of internal before and after hooks (jeremyevans)
504
-
505
- * Improve performance by using method instead of instance_exec for main route block (jeremyevans)
506
-
507
- * Add Roda.define_roda_method for defining instance methods instead of using instance_exec (jeremyevans)
508
-
509
- * Include cookie_options when clearing the cookie (#162, #163) (eiko, jeremyevans)
510
-
511
- = 3.17.0 (2019-02-15)
512
-
513
- * Improve performance in the common case for RodaResponse#finish (jeremyevans)
514
-
515
- * Support before hooks in the hooks plugin in the mailer and mail_processor plugins (jeremyevans)
516
-
517
- * Allow set_layout_opts in view_options plugin to override layout if render plugin :layout option is given (jeremyevans)
518
-
519
- * Add route_block_args plugin to control which arguments are yielded to the route block (jeremyevans, chrisfrank) (#159)
520
-
521
- = 3.16.0 (2019-01-18)
522
-
523
- * Add mail_processor plugin for processing mail using a routing tree (jeremyevans)
524
-
525
- = 3.15.0 (2018-12-14)
526
-
527
- * Support render plugin :escape option to be a string or array of strings and only add :escape option for those template engines (jeremyevans) (#158)
528
-
529
- * Add :skip_missing option to convert!/convert_each! in the typecast_params plugin to support not storing keys not present in params (jeremyevans)
530
-
531
- = 3.14.1 (2018-11-29)
532
-
533
- * SECURITY: content_for plugin no longer post-processes block result with template engine (jeremyevans)
534
-
535
- = 3.14.0 (2018-11-16)
536
-
537
- * Add :raise option to convert!/convert_each! in the typecast_params plugin to support not raising for missing keys (celsworth) (#153)
538
-
539
- * Do not persist convert!/convert_each! :symbolize setting in the typecast_params plugin (jeremyevans)
540
-
541
- = 3.13.0 (2018-10-12)
542
-
543
- * Make Stream#write in streaming plugin return number of bytes written instead of self, so it works with IO.copy_stream (jeremyevans)
544
-
545
- * Add exception_page plugin for showing a page with debugging information for a given exception (jeremyevans)
546
-
547
- * Make common_logger plugin handle raised errors (jeremyevans)
548
-
549
- = 3.12.0 (2018-09-14)
550
-
551
- * Add common_logger plugin for common log support (jeremyevans)
552
-
553
- = 3.11.0 (2018-08-15)
554
-
555
- * Disable default compression of sessions over 128 bytes in the sessions plugin (jeremyevans)
556
-
557
- * Log but otherwise ignore exceptions raised by after processing of error handler response (jeremyevans)
558
-
559
- * Modify internal before/after processing to avoid plugin load order issues (jeremyevans)
560
-
561
- = 3.10.0 (2018-07-18)
562
-
563
- * Remove flash key from session if new flash is empty when rotating flash (jeremyevans)
564
-
565
- * Speed up RodaRequest initialization by avoiding 1-2 method calls (jeremyevans)
566
-
567
- * Add roda/session_middleware (RodaSessionMiddleware), usable as a middleware by any Rack app to use Roda's session support (jeremyevans)
568
-
569
- * Add sessions plugin for more secure (encrypted+signed) sessions (jeremyevans)
570
-
571
- * Support :json_parser and :json_serializer application options as default implementations for parsing/serializing JSON (jeremyevans)
572
-
573
- * Add :handle_result option to middleware plugin for modifying rack result before returning it (jeremyevans)
574
-
575
- * Make the flash plugin work correctly when sessions are serialized with JSON (jeremyevans)
576
-
577
- * Make Integer in typecast_params handle Numeric input, and require that Numeric input not have fractional parts (jeremyevans) (#146)
578
-
579
- = 3.9.0 (2018-06-11)
580
-
581
- * Add route_csrf plugin for CSRF protection, offering more control, better security, and request-specific tokens compared to rack_csrf (jeremyevans)
582
-
583
- = 3.8.0 (2018-05-17)
584
-
585
- * Accept convert_each! :keys option that is Proc or Method in typecast_params plugin (jeremyevans)
586
-
587
- * Make convert_each! in typecast_params plugin handle hashes with '0'..'N' keys without :keys option (jeremyevans)
588
-
589
- = 3.7.0 (2018-04-20)
590
-
591
- * Make response_request plugin work with error_handler and class_level_routing plugins (jeremyevans)
592
-
593
- * Add content_security_policy plugin for setting an appropriate Content-Security-Policy header (jeremyevans)
594
-
595
- = 3.6.0 (2018-03-26)
596
-
597
- * Add :wrap option to json_parser plugin, for whether/how to wrap the uploaded JSON object (jeremyevans) (#142)
598
-
599
- * Add :early_hints option to the assets plugin, for supporting sending early hints for calls to assets (jeremyevans)
600
-
601
- * Add early_hints plugin for sending 103 Early Hint responses, currently only working on puma (jeremyevans)
602
-
603
- = 3.5.0 (2018-02-14)
604
-
605
- * Add request_aref plugin for configuring behavior of request [] and []= methods (jeremyevans)
606
-
607
- * Make public plugin not add Content-Type header when serving 304 response for gzipped file (jeremyevans)
608
-
609
- * Make content_for call with block convert block result to string before passing to tilt (jeremyevans) (#135)
610
-
611
- = 3.4.0 (2018-01-12)
612
-
613
- * Add middleware_stack plugin for removing middleware and inserting middleware before the end of the stack (jeremyevans)
614
-
615
- * Make head plugin handle closing existing response bodies if the body responds to close (Eric Wong)
616
-
617
- = 3.3.0 (2017-12-14)
618
-
619
- * Add typecast_params plugin for converting param values to explicit types (jeremyevans)
620
-
621
- = 3.2.0 (2017-11-16)
622
-
623
- * Use microseconds in assets plugin :timestamp_paths timestamps (jeremyevans)
624
-
625
- * Add timestamp_public plugin for serving static files with paths that change based on modify timestamp (jeremyevans)
626
-
627
- = 3.1.0 (2017-10-13)
628
-
629
- * Make set_layout_locals and set_view_locals in branch_locals plugin work when the other is not called (jeremyevans)
630
-
631
- * Add :timestamp_paths option to assets plugin to include timestamps in paths in non-compiled mode (jeremyevans)
632
-
633
- * Handle ExecJS::RuntimeUnavailable when testing for javascript compression support using uglifier (jeremyevans)
634
-
635
- * Remove deprecated Roda.thread_safe_cache and RodaRequest#placeholder_string_matcher? methods (jeremyevans)
636
-
637
- = 3.0.0 (2017-09-15)
638
-
639
- * Make defined symbol_matcher and hash_matcher match methods private (jeremyevans)
640
-
641
- * Use public_send instead of send unless calling private methods is expected (jeremyevans)
642
-
643
- * Compute multi_run regexp when freezing app to avoid thread safety issues at runtime (jeremyevans)
644
-
645
- * Remove deprecated support for using undefined multi_route namespaces when routing (jeremyevans)
646
-
647
- * Make it possible to reset :include_request options to false for json and json_parser plugins (jeremyevans)
648
-
649
- * Deprecate RodaRequest#placeholder_string_matcher? private method (jeremyevans)
650
-
651
- * Deprecate Roda.thread_safe_cache, use RodaCache directly (jeremyevans)
652
-
653
- * Make using an app as middleware always create a subclass of the app (jeremyevans)
654
-
655
- * Enable SHA256 subresource integrity by default in assets plugin (jeremyevans)
656
-
657
- * Make subclassing a roda app always inherit the render cache (jeremyevans)
658
-
659
- * Make :cache=>nil render plugin option still allow caching via :cache render method option (jeremyevans)
660
-
661
- * Make content_for plugin append to existing content by default (jeremyevans)
662
-
663
- * Make :host matcher in the header_matchers plugin always yield captures if given a regexp (jeremyevans)
664
-
665
- * Make :header matcher in the header_matchers plugin now always prefix header with HTTP_ (jeremyevans)
666
-
667
- * Remove deprecated support for locals handling at the plugin level in the render plugin (jeremyevans)
668
-
669
- * Remove deprecated support for handling locals in the view_options plugin (jeremyevans)
670
-
671
- * Remove deprecated support for :ext option in render plugin (jeremyevans)
672
-
673
- * Remove deprecated view_subdirs alias for view_options plugin (jeremyevans)
674
-
675
- * Remove deprecated support for EventMachine and Stream#callback method in the streaming plugin (jeremyevans)
676
-
677
- * Drop support for ruby 1.8.7 (jeremyevans)
678
-
679
- * Make using an unsupported matcher raise error by default (jeremyevans)
680
-
681
- * Make having a match/route block return an unsupported value raise error by default (jeremyevans)
682
-
683
- * Remove deprecated :format, :opt, and :optd symbol matchers in symbol_matchers plugin (jeremyevans)
684
-
685
- * Remove deprecated support for placeholders in string matchers (jeremyevans)
686
-
687
- * Remove deprecated constants and plugins (jeremyevans)
688
-
689
- === Older
690
-
691
- See doc/CHANGELOG.old