merb-core 0.9.5 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/CHANGELOG +925 -0
  2. data/CONTRIBUTORS +93 -0
  3. data/PUBLIC_CHANGELOG +85 -0
  4. data/Rakefile +18 -28
  5. data/bin/merb +34 -5
  6. data/lib/merb-core/autoload.rb +2 -3
  7. data/lib/merb-core/bootloader.rb +60 -66
  8. data/lib/merb-core/config.rb +7 -1
  9. data/lib/merb-core/controller/abstract_controller.rb +35 -21
  10. data/lib/merb-core/controller/merb_controller.rb +15 -42
  11. data/lib/merb-core/controller/mixins/authentication.rb +42 -6
  12. data/lib/merb-core/controller/mixins/conditional_get.rb +83 -0
  13. data/lib/merb-core/controller/mixins/render.rb +3 -3
  14. data/lib/merb-core/core_ext/kernel.rb +6 -19
  15. data/lib/merb-core/dispatch/cookies.rb +96 -80
  16. data/lib/merb-core/dispatch/default_exception/views/index.html.erb +2 -0
  17. data/lib/merb-core/dispatch/request.rb +18 -16
  18. data/lib/merb-core/dispatch/router/route.rb +6 -0
  19. data/lib/merb-core/dispatch/router.rb +4 -1
  20. data/lib/merb-core/dispatch/session/container.rb +64 -0
  21. data/lib/merb-core/dispatch/session/cookie.rb +91 -101
  22. data/lib/merb-core/dispatch/session/memcached.rb +38 -174
  23. data/lib/merb-core/dispatch/session/memory.rb +62 -208
  24. data/lib/merb-core/dispatch/session/store_container.rb +145 -0
  25. data/lib/merb-core/dispatch/session.rb +174 -48
  26. data/lib/merb-core/rack/middleware/conditional_get.rb +14 -8
  27. data/lib/merb-core/rack/middleware/csrf.rb +73 -0
  28. data/lib/merb-core/rack.rb +1 -0
  29. data/lib/merb-core/script.rb +112 -0
  30. data/lib/merb-core/server.rb +2 -0
  31. data/lib/merb-core/tasks/merb_rake_helper.rb +25 -0
  32. data/lib/merb-core/test/helpers/request_helper.rb +40 -3
  33. data/lib/merb-core/test/run_specs.rb +4 -3
  34. data/lib/merb-core/vendor/facets/inflect.rb +7 -10
  35. data/lib/merb-core/version.rb +1 -1
  36. data/lib/merb-core.rb +11 -40
  37. data/spec/private/core_ext/kernel_spec.rb +0 -11
  38. data/spec/private/dispatch/fixture/log/merb_test.log +893 -0
  39. data/spec/private/router/fixture/log/merb_test.log +12 -1728
  40. data/spec/private/router/route_spec.rb +4 -0
  41. data/spec/private/router/router_spec.rb +8 -0
  42. data/spec/private/vendor/facets/plural_spec.rb +1 -1
  43. data/spec/private/vendor/facets/singular_spec.rb +1 -1
  44. data/spec/public/abstract_controller/controllers/display.rb +8 -2
  45. data/spec/public/abstract_controller/controllers/filters.rb +18 -0
  46. data/spec/public/abstract_controller/display_spec.rb +6 -2
  47. data/spec/public/abstract_controller/filter_spec.rb +4 -0
  48. data/spec/public/controller/authentication_spec.rb +114 -43
  49. data/spec/public/controller/base_spec.rb +8 -0
  50. data/spec/public/controller/conditional_get_spec.rb +100 -0
  51. data/spec/public/controller/config/init.rb +1 -1
  52. data/spec/public/controller/controllers/authentication.rb +29 -0
  53. data/spec/public/controller/controllers/base.rb +13 -0
  54. data/spec/public/controller/controllers/conditional_get.rb +35 -0
  55. data/spec/public/controller/controllers/cookies.rb +10 -1
  56. data/spec/public/controller/cookies_spec.rb +38 -9
  57. data/spec/public/controller/spec_helper.rb +1 -0
  58. data/spec/public/controller/url_spec.rb +70 -1
  59. data/spec/public/directory_structure/directory/log/merb_test.log +461 -0
  60. data/spec/public/rack/conditinal_get_middleware_spec.rb +77 -89
  61. data/spec/public/rack/csrf_middleware_spec.rb +70 -0
  62. data/spec/public/reloading/directory/log/merb_test.log +52 -0
  63. data/spec/public/request/request_spec.rb +19 -1
  64. data/spec/public/router/fixation_spec.rb +26 -4
  65. data/spec/public/router/fixture/log/merb_test.log +234 -30332
  66. data/spec/public/session/controllers/sessions.rb +52 -0
  67. data/spec/public/session/cookie_session_spec.rb +73 -0
  68. data/spec/public/session/memcached_session_spec.rb +31 -0
  69. data/spec/public/session/memory_session_spec.rb +28 -0
  70. data/spec/public/session/multiple_sessions_spec.rb +74 -0
  71. data/spec/public/session/no_session_spec.rb +12 -0
  72. data/spec/public/session/session_spec.rb +91 -0
  73. data/spec/public/test/controllers/spec_helper_controller.rb +2 -1
  74. data/spec/public/test/request_helper_spec.rb +15 -0
  75. data/spec/spec_helper.rb +2 -2
  76. metadata +23 -5
  77. data/spec/private/dispatch/cookies_spec.rb +0 -219
  78. data/spec/private/dispatch/session_mixin_spec.rb +0 -47
data/CHANGELOG ADDED
@@ -0,0 +1,925 @@
1
+ == 0.9.5 "Knife and Spoons" 2008-26-08
2
+ * Add Hpricot to dependencies: provided RSpec matchers depend on it.
3
+ * Documentation fixes
4
+ * Make Rack application set Date header as required by RFC2616.
5
+ * Port Django's conditional GET middleware to Rack.
6
+ * Fix passenger issue
7
+ * Make Autotest consume less CPU by adding excludes.
8
+ * Add extract! experimentally
9
+ * Adds dev deps on rake install
10
+ * Add necessary dev dependencies
11
+ * Make route_to(...).with matcher work properly with empty hashes
12
+ * Make Merb::Request#query_parse a bit faster.
13
+ * Speed up dispatcher specs by using libxml
14
+ * throw :halt, nil spec
15
+ * More rigid specs
16
+ * merb-core really cannot use >= with extlib 0.9.3 at this point, so update gemspec
17
+ * Use Logger from Extlib
18
+ * Fix issue with Safari having weird ordering by fixing the issue in general.
19
+ * Fixes up a bunch of specs
20
+ * Add ContentLength middleware.
21
+ * Rename Rack middleware spec file
22
+ * Add Tracer middleware.
23
+ * Improve the documentation of AbstractController.
24
+ * Move Merb::Rack::Middleware#deferred\? to Merb::Rack::Application.
25
+ * No longer use Pathname for Merb.root and friends.
26
+ * fixed merb_erb bug
27
+ * readded _generator_scope methods with deprecation warnings
28
+ * added use_template_engine method and removed generator_scope code that is no longer needed
29
+ * Add clear_content to renderer
30
+
31
+ == 0.9.4 "Leave No Broken Windows" 2008-12-08
32
+ * Update required Ruby version to 1.8.6.
33
+ * Make dispatch_to set params[:controller] and params[:action].
34
+ * Update RedirectTo matcher documentation.
35
+ * redirect_to matcher now has :message option
36
+ * Adds some detail to the public changelog
37
+ * Fix rakefile
38
+ * Make history Rake tasks work again.
39
+ * Add contributors file.
40
+ * Add Rake tasks that list and update contributors file.
41
+ * A bit more readable spec example titles. Follow one assertion per test rule.
42
+ * Make Merb::Controller#send_file set header with respect to Rack specification.
43
+ * Removed TODO in Dispatcher#handle.
44
+ * More updates to Merb::Request methods documentation.
45
+ * Document Router#route_for(request).
46
+ * Document some new Request methods.
47
+ * Doc correction: Request#params returns instance of Mash.
48
+ * Doc correction: Request#body_and_query_params returns instance of Mash.
49
+ * ! for methods that change the receiver
50
+ * Remove old code
51
+ * Moves session fixation into request
52
+ * re-add permanent redirects
53
+ * Don't need this spec anymore.
54
+ * More work on the dispatcher.
55
+ * Documentation improvement + improvement in division of responsibilities.
56
+ * Before moving stuff into the Rack adapter.
57
+ * Additional refactor of the default Exceptions to use an actual Merb controller. Almost ready for a merge. Yeehaw!
58
+ * Even more awesome dispatcher improvements.
59
+ * Fixes an issue with status symbols
60
+ * Class extensions spec moved to Extlib.
61
+ * Move all accessors in AbstractController to the top so one can see them easily.
62
+ * We don't need this anymore
63
+ * Continues dispatch refactor. Exceptions now maintain a stack that is reported in the case of exceptions that, themselves, throw exceptions.
64
+ * Document :with option of filters.
65
+ * Fixed a typo in AbstractController documentation.
66
+ * Extra specs and love to Merb::Controller._session_*
67
+ * Added fixture config/init.rb
68
+ * Resolved conflict after cherry-pick of 9d1a11ff.
69
+ * Fixtures and pending specs for controller/cookie store integration.
70
+ * Re-set session cookie expiry and friends once init file/configuration is loaded.
71
+ * Two more specs for class_inheritable_accessor.
72
+ * Make spec for #342 do correct assertions.
73
+ * Fixed a bug where changes to inherited controller filters would bleed acrosss siblings
74
+ * the dispatcher specs
75
+ * Add more edge-case specs to Dispatcher and make sure they pass.
76
+ * Make Cookie#set_cookie handle more options. Improve spec coverage.
77
+ * Refactor Dispatcher.handle to reduce complexity
78
+ * Fix some ruby warnings
79
+ * Added flog tasks to rake
80
+ * add in stats task
81
+ * Forgotten changes to Rakefile.
82
+ * resource urls with additional params
83
+ * Remove double-start in Thin adapter.
84
+ * Merb::SimpleSet => Extlib::SimpleSet
85
+ * merb-extlib => extlib
86
+ * add spec for empty raw_post on xml content type
87
+ * make sure to resuce JSON parse errors and return {}
88
+ * Use Pathname in some more places, fix breakages.
89
+ * Added more documentation for some of the extra options available to #partial
90
+ * Temp commit.
91
+ * Relative :template paths can be extensionless again.
92
+ * Oops - forgot some files...
93
+ * Fixed nasty bugs in controller/mixins/responder and its specs.
94
+ * Reworded the documentation for #partial a little bit
95
+ * Added some documentation for the new partial collection counter
96
+ * Slight refactoring of the partial method
97
+ * Adding views for the new partial collection counter specs
98
+ * Adding the current index and collection size for partials rendered with a collection
99
+ * Use gem release task that's in Extlib now.
100
+ * If someone can figure out why this is already defined, please let me know
101
+ * Yeah... not a good idea
102
+ * ADd push_paths to the load path.
103
+ * another tiny tweak
104
+ * Fixes open IO issue
105
+ * Switch to merged extlib.
106
+ * Use Pathname in some more places, fix breakages.
107
+ * Move to merb-extlib is almost there.
108
+ * Output a warning about merb-extlib if it can't be loaded.
109
+ * Applying patch to allow use of thin_turbo adapter. Thanks dkubb!
110
+ * Did I really commit that?
111
+ * Use :info as default log level for now: people wonder "where the output is gone".
112
+ * Make sure default config has log level of error so template inlining bootloader won't dump everything to the tty.
113
+ * Do not reference to old merb.yml in doc.
114
+ * whoops... dup
115
+ * Add support for argument capture and fix $DEBUG bootloader stuff [#390 state:resolved]
116
+ * Ignore temp Emacs files.
117
+ * Generate tags only for lib.
118
+ * Adds Rake tasks to generate Emacs tags.
119
+ * Touch RDoc of LoadClasses bootloder.
120
+ * LoadClasses#remove_file => LoadClasses#remove_classes_in_file.
121
+ * Output extra information on boot when verbose config option is given from
122
+ * Make Logger bootloader print meaningful warning when RubyGems is outdated.
123
+ * capture_erb correctly passes arguments to the block again
124
+ * Let world know what this delete vs. destroy thing is all about.
125
+ * Add support for OPTIONS
126
+ * display doesn't throw an error if a layout is not found, even if one is specified (because of class-wide layout options)
127
+ * throw_content now concatenates, not replaces, content
128
+ * Added view for throw_content spec
129
+ * Clean up resource regexps after ; separator is gone.
130
+ * @@parent_resources, not @@parent_resource
131
+ * Semicolon as action separator for resources is no longer supported: breaks basic http auth in Safari.
132
+ * Small doc update. Thanx jackdempsey
133
+ * Adds message support (like flash in Rails but with somewhat different semantics)
134
+ * Add .tmproj to the list of ignores
135
+ * Fix bug with :status
136
+ * Spec for :status in display
137
+ * display handles :status and :location
138
+ * Improved RDoc of Merb#load_dependencies.
139
+ * script/frozen-merb => merb-freezer in RDoc
140
+ * Adjusted logging message for thin sockets vs ports.
141
+ * Added socket option to thin.rb and to the command line options.
142
+ * send_file opens files in 'rb' binary mode so windows doesn't shit itself
143
+ * added add_generators, which allows plugins to load their own generator in the same way as rakefiles
144
+ * fix nginx_send_file
145
+ * Spec for previously applied patch to Behavior#defer_to.
146
+ * use Route#register in defer_to so that deferred routes get an index
147
+ * Make Autotest ignore doc/ as well.
148
+ * Ensure Autotest ignores changes in log directory.
149
+ * Add helpers directory to load path
150
+ * Modules don't get duped right.
151
+ * Redo Merb's inheritable_accessors so that they have correct semantics, then redo everything that uses inheritable_accessors so they don't have to hack around the bad semantics.
152
+ * Added spec for the route matcher testing regexp routes. [#386]
153
+ * Add Merb.started? alias for Merb.started reader.
154
+ * Add reader for @started flag which shows when Merb environment is started.
155
+ * Update memory session storage documentation.
156
+ * Use warn logger level instead of debug, if session persisting fails.
157
+ * FileUtils#touch only added mtime option in ruby 1.8.6. let's use File#utime instead
158
+ * better log message
159
+ * rescue excpetions in Worker thread, log them and then restart the work queue
160
+ * Router now can do r.match("/this/old/url").redirect("/where/this/resides/now").
161
+ * Refactor Merb::Test::RequestHelper and introduce build_request helper.
162
+ * spoke too soon.
163
+ * we actually don't need to log this at all as its logged latert in the _benchmarks
164
+ * Update link to wiki page on Rack in exception.
165
+ * Add link to Rack page at wiki to Controller not found exception. This confuses people a lot.
166
+ * Log namespaced controller name when it's class is not found.
167
+ * I will test first next time, I promise.
168
+ * Tell what's actually started when Dispatcher begins to handle request.
169
+ * Fixed typo in yet another exception message.
170
+ * Log an info message when route fixation actually happens. Those heavily using Flash will find it helpful.
171
+ * Log a warning if controller class cannot be found.
172
+ * A bit more verbose exception message when route does not specify a controller.
173
+ * Documentation: add deprecation warning to AbstractController. Manually applied patch from dstar.
174
+ * Increase header level on sub-headers of Filters in AbstractController
175
+ * Fixes request helper bug [#378: resolved]
176
+ * Fixes case of :format being ignored.
177
+ * If the spec.opts file exists, use it.
178
+ * use Thread.pass to avoid running newly queued item before the action's thread finishes
179
+ * Added Merb::Worker. You can now add a block to be run in a separate thread
180
+ * Let's try again, this time with <% end =%>
181
+ * Try #concat to resolve some issues.
182
+ * One more time.
183
+ * Should handle denormalized multiline blocks now.
184
+ * wycats needs to learn to escape pipes.
185
+ * Make Merb::Plugins.config[:foo] default to {}
186
+ * Long lines make wycats' eyes' bleed. Plus, why do all those .joins twice?
187
+ * jackdempsey's inflector improvements (backported from wycats' patch to Rails)
188
+ * Fixes typo.
189
+ * <%= now takes a block in Erubis. Erubis buffer now an ivar (@_erb_buf) so eval is no longer required for capture. Helpers that take a block should now return a string.
190
+ * Fixes the after filters
191
+ * Reorganize experimental stuff.
192
+ * Additional slight efficiency and readability improvement.
193
+ * Improve speed of content-type=. 5% speed on hello world requests.
194
+ * Improve the speed of _perform_content_negotiation (and got 10% better speed on requests)
195
+ * Old stuff that should be committed.
196
+ * Speed up synonym lookup by order of magnitude :(
197
+ * add Merb::Rack::Profiler middleware. to use add the following to your config/rack.rb file:
198
+ * update license
199
+ * Missing require
200
+ * require 'stringio'
201
+ * Add support for non-standard template reloading. Plugin authors need to override load_template_io to handle special reloading logic.
202
+ * Add support for IO templates instead of just paths. See PLUGIN_API_CHANGELOG for details.
203
+ * add swiftiplied mongrel rack adapter.
204
+ * Swapped the order of helper and controller in the default_framework
205
+ * Why should capture be private?
206
+ * Merb::Config[:framework] now needs absolute paths to work (breaks BC)
207
+ * Merb::Config[:framework] paths now pickup files using glob **/*.rb unless specified otherwise
208
+ * Don't automatically use Facebook signature
209
+ * Fixes failing spec.
210
+ * make the default rake task 'specs' so running rake in merb-core just runs the specs
211
+ * Rename @status to @_status
212
+ * Avoid adding nil values in place of missing keys for Hash#only
213
+ * Fix issue with null segments
214
+ * Fixed session cookie expires value [#366 state:resolved]
215
+ * Made HTTP method override proc-based and pluggable. [#364]
216
+ * siiiiiigh.
217
+ * Revert partial counter and yielding.
218
+ * Remove some duplication
219
+ * For crying out loud.
220
+ * Refactor display. WARNING: This commit might not be stable. I need to add a bunch more specs for display before I feel confident.
221
+ * Make the TemplateNotFound error read better. Slight refactor of _get_layout.
222
+ * Fix _template_for so it's actually readable
223
+ * uhhhhhhhh...
224
+ * Added Merb::Router.reset! and Merb::Router.capture
225
+ * Speedup Route URL generation
226
+ * Start work on fixing contaminated cousins bug.
227
+ * Changed controller inheritance of _template_root
228
+ * Added the ability to use full/absolute template paths for render, display and partial views
229
+ * This cannot be tested this way. It needs to be tested as a public spec (testing it privately here was a cop-out and fails when I fixed up the way dependency works).
230
+ * Allows passage of query string via env["QUERY_STRING"] in tests. [#358 state:resolved]
231
+ * Handles use of dependency after BootLoading. [#360 state:resolved]
232
+ * properly set the session_id_key
233
+ * added 2 specs for multipart formdata: (1) for checking request with IO, (2) for testing GET with content_type not erroring on multipart/form-data absence; fixed error with multipart/form-data absence.
234
+ * Made Class a lot more sane.
235
+ * Fix README for merb-gen app foo
236
+ * Do not duplicate work Merb::Template.template_extensions does in Templates bootloader.
237
+ * Make exception message when Merb cannot find template explain what it was
238
+ * Fixed 2 problems with multipart form upload after application is deployed to Tomcat via warble: (1) The @body object in this environment is an IO object, not a StringIO, so doesn't have a size method, and (2) 'tempfile' needs to be explicitly required.
239
+ * made only and except uglier and faster
240
+ * Preserve order parse query, respect query string override in test request
241
+ * Added partial counter and yielding for collections
242
+ * Remove occasionly committed *.rbc files.
243
+ * Ignore *.rbc created by Rubinius compiler.
244
+ * Send the route into the controller
245
+ * Add Merb::Request.browser_method_workarounds
246
+ * Revert ca92bdfc89afda04cbb4fd3d3e5848648cc0b326
247
+ * Refactored Merb::BootLoader::LoadClasses.reload into an additional remove_file method for other usage
248
+ * Fixed some failing specs
249
+ * Added rake :audit namespace to list routes, controllers and actions
250
+ * Remove occasionly committed *.rbc files.
251
+ * Ignore *.rbc created by Rubinius compiler.
252
+ * Make obj.full_const_get more robust
253
+ * forgot to comment out the text
254
+ * added DHH copyright notice to conre_ext/class.rb
255
+ * Better usage of merb_rake_helper.rb
256
+ * Added tasks/merb_rake_helper.rb - removed it from merb-more
257
+ * Refactored Merb::Controller.callable_actions
258
+ * Fixing bug in the rspec route matcher.
259
+ * More useful error for display errors
260
+ * Make load_paths a dictionary so models load first.
261
+ * Added Merb::Template.template_extensions as a semi-public method for getting known template extensions
262
+ * Prevent anonymous controller classes from making a Helper module
263
+ * We've Been Dup'd! - fixed nasty bug concerning class inheritable attrs
264
+ * Added Object.full_const_set
265
+ * Add helper for full_uri
266
+ * Adds a timestamp to a requests output
267
+ * Fixed documentation examples for dispatch spec helpers
268
+ * Added public method Merb::BootLoader::LoadClasses.load_classes(*paths)
269
+ * Only do the rubygems hack if it's needed and deal with cases where people are using the Gem cache library without using the commands.
270
+ * Updated docs on Merb#merge_env
271
+ * Merb Personalized Environments; Completed Merb#merge_env method, now accepts boolean parameter to optionally use the merged environments database connection
272
+ * fix typo in spec
273
+ * Check to see if the session responds to :data
274
+ * make nice for windows - remove app level loading (is handled in rakefile in merb-more now
275
+ * Typos
276
+ * YARD conversion of set.rb and time.rb
277
+ * YARD conversion of rubygems.rb
278
+ * YARD conversion of object_space.rb
279
+ * YARD conversion of object.rb
280
+ * YARD conversion of mash.rb
281
+ * YARD conversion of kernel.rb
282
+ * YARD conversion for hash.rb
283
+ * Convert class.rb over to YARD.
284
+ * Convert string.rb over to YARD format.
285
+ * Patch for missing inner_content method bug in HasTag
286
+ * Correct lable and line number in Router#compile
287
+ * Make merb.show_routes show named routes a bit more verbose.
288
+ * Make merb.show_routes a bit more verbose.
289
+ * Use single symbol instead of Array for ORM/test framework generator scopes.
290
+ * Add links to source at GitHub to boot diagram
291
+ * Merb core boot diagram is done and prettified
292
+ * Add support for a :session_cookie_domain config option to allow for setting the session cookie's domain.
293
+ * Add more advanced nested routes examples to Merb::Router::Behavior#match documentation.
294
+ * Add a bunch of pretty advanced spec examples for nested matches in routes.
295
+ * Code clean-up behavior.rb
296
+ * Created Documentation for new #match functionality
297
+ * Changes to behavior.rb to allow for :controller, :actions and :params options to be passed in
298
+ * Implemented Merb::Router::Behavior#match! that is a shortcut for match(...).to({}).
299
+ * Improve Merb boot diagram.
300
+ * Make each subsequent call to use_orm just replace effect of previos.
301
+ * Remove WIP spec for Merb::Router::Behavior#redirect.
302
+ * fix typo in request_spec.rb
303
+ * Needs to raise here since if the generator scope has more than one ORM the geneartors will not work.
304
+ * Log instead of raising when dependencies mechanism this ORM required twice.
305
+ * Get rid of Kernel#registered_orm?, it is no longer in use.
306
+ * Make Kernel#registred_orm? use simple include lookup.
307
+ * Fix spec and Kernel#registred_orm? conditions bug.
308
+ * Fix a typo.
309
+ * Fixed erronous documentation in Merb::Router::Behavior
310
+ * Working on Behaviour#redirect feature: stashing changes.
311
+ * update callable_actions to exclude any methods beggining with an _underscope
312
+ * Adds template-checking code to branch where :with option is specified in partials.
313
+ * Add two notes on layout method versus :layout option of render method.
314
+ * Forget to add template for added spec example.
315
+ * Add spec example for render :layout => false that overrides layout.
316
+ * More sweet empty lines management in controller fixtures.
317
+ * Clean up empty lines in fixture controller.
318
+ * Fix _template_for documentation: content type does not default to nil.
319
+ * Update render method documentation, we support :layout => false.
320
+ * JSON objects that do not inflate to hashes should populate params[:inflated_object] (Ticket #316)
321
+ * update new rack middleware machinery to be more merb style in the bootloader
322
+ * Changed MerbDispatch to MerbApplication. Fixed error in deferred? call chain.
323
+ * More flexible composition of merb application
324
+ * Start implementing Merb::Router::Behavior#redirect.
325
+ * A note on condition block and deferred routes.
326
+ * Note on thread safety of routes compilation.
327
+ * Explain what Merb::Router does and what routes compilation is.
328
+ * Explain how "form used by Merb::Router" is often referred.
329
+ * Be explicit on what Merb::Router::Route#if_condition actually does and how it is used.
330
+ * Add a note that Merb::Router::Route#generate uses #to_param on parameters.
331
+ * Be explicit on what Merb::Router::Route#generate actually does.
332
+ * Add a note to Merb::Router::Route#name documentation.
333
+ * Add note on string representation of routes.
334
+ * More explicit documentation for Merb::Router::Router#register.
335
+ * Add section on fixation of routes.
336
+ * Another take on better Merb::Router::Route documentation.
337
+ * New Merb::Router::Route documentation probably got a bit better.
338
+ * Something that looks like detailed Merb::Router::Route but needs a lot of work.
339
+ * Add first naive spec examples for Merb::Router::Route#compile.
340
+ * Use .prepare when we do not really need .prepend
341
+ * Made sure default format response_header can set explicit Content-Type header
342
+ * Default format response_headers cannot overwrite runtime-set (controller) headers
343
+ * Mirror plural spec from singular. Fix a couple of revealed failures.
344
+ * Actually implemented Merb.add_mime_type's new_response_headers
345
+ * Add cases that were failing in pluralization specs to singularization spec.
346
+ * Fix failures in pluralization specs. Add more cases.
347
+ * spec/private/vendor/inflector => spec/private/vendor/facets
348
+ * Pluralization spec examples.
349
+ * Move singularization specs to separate file.
350
+ * More spec examples for inflector.
351
+ * Improve spec coverage of inflector.
352
+ * Improve inflector spec coverage: separate cases into groups.
353
+ * Fix a typo exposed by spec suite.
354
+ * Initial set of spec examples for inflector.
355
+ * Changed vague :request_headers term into :accepts (meaning HTTP Accept header)
356
+ * Sweet empty lines management in spec helper.
357
+ * Increase sleep time reloader spec.
358
+ * Unwanted change to autotest slipped in, must get better at git
359
+ * More reliable reloader test with fewer sleeps
360
+ * remove :nodoc: from merb-core DO NOT USE :nodoc: EVAR!!
361
+ * More lower-level spec examples for Merb::Router::Route.
362
+ * More lower-level specs for Merb::Routing::Route.
363
+ * Initial set of lower-level specs for Merb::Router::Route methods.
364
+ * Rename file with extra unit specs for Merb::Router
365
+ * Removed extra comment.
366
+ * Finished Merb::Router unit-ish spec.
367
+ * Initial lower-level specs for router.
368
+ * Fix for users with spaces in gem path
369
+ * Add missing specs for route fixation.
370
+ * Add matched_route_for spec helper to get raw Route instance.
371
+ * Exclude unwanted files from rcov analysis.
372
+ * Make Rakefile respect GEM_HOME. Thanks Corey Jewett.
373
+ * Add extra output lines to Merb::Server methods if verbose mode is on.
374
+ * Add -V/--verbose options.
375
+ * Improve documentation of session persist/finalize exception callbacks.
376
+ * Initial specs for Merb::SessionMixin
377
+ * Tiny documentation touchups
378
+ * Require RubyGems first before spec to satisfy Autotest.
379
+ * Exception handler callbacks for finalize_session and persist
380
+ * Update Merb core boot diagram a bit.
381
+ * Documentation for Merb::BootLoader::DropPid bootloader.
382
+ * add in string so that @element.contains? will work when @element is a string and not just Hpricot::Elem
383
+ * remove hpricot as a merb-core dependency since it is never loaded at runtime.
384
+ * Merb::BootLoader::Templates now uses _template_roots not just _template_root
385
+ * add in support for core tasks, and first core task -- routes
386
+ * Fix Webrick support by preferring REQUEST_PATH over REQUEST_URI
387
+ * Changed Merb::BootLoader::BeforeAppRuns into Merb::BootLoader::BeforeAppLoads which matches Merb::BootLoader::AfterAppLoads
388
+ * Added option to Controller#redirect(url, permanent) so 301 responses can be returned as well
389
+ * Bump version in core to 0.9.4.
390
+ * Pump version to 0.9.4.
391
+ * throw argument error when filter receives an invalid option
392
+ * spec for ticket 307
393
+ * Update GitHub gemspec.
394
+ * fixed description of daemonize spec in Merb::Config
395
+ * Trick Git: change SHA1 of tree to push recent binary files changes.
396
+ * Add PNG version of call stack diagram
397
+ * Add call stack diagram source file, in Mind Manager format.
398
+ * Add expanded call stack diagram: probably Git does not work perfectly with binary diffs.
399
+ * Temporarily wipe out call stack diagram
400
+ * Expand all nodes on call stack diagram.
401
+ * Add Merb core call stack (yet to be finished).
402
+ * Fixed cruddy doc comments.
403
+ * Remove nil items from params when generating routes
404
+ * Fixed typo in resource rdoc
405
+ * cleaned up a bit. removed dependency on to_params value in controller test.
406
+ * added ability to set the Location header with display and render
407
+ * remove useless complexity from the logger.
408
+ * 0.9.3 changelog
409
+ * Remove special case for dm-core in use_orm
410
+ * removing __app_file_trace__ since it doesn't work.
411
+ * Add Emacs TAGS to ignore
412
+ * Explain Merb application layouts in documentation.
413
+ * Benchmarks
414
+ * Allow http status to be a symbol - refactored String snake_case method
415
+ * Explain how to set up /lib autoload in documentation.
416
+ * Make change_priveledge actually work
417
+ * bump merb-core version to 0.9.3 in prep for release.
418
+ * Add new -R/--rackup option to the full(-ish) list of options.
419
+ * Provide opts for alternate rackup config path. This is consistent with --rackup option for thin and gives a little more freedom to specify the rackup config (instead of being forced to rack.rb).
420
+ * Testing Merb::Test::RequestHelper#request method to properly handle namespaced routes
421
+ * test request helpers support namespaced routes
422
+ * Added parentheses to be_kind_of to get rid of warnings when running application_spec.rb
423
+ * Fixing pidfiles glob on cluster and pidfile argument
424
+ * replaced nested 'if' with an 'elseif'
425
+ * params array serialization
426
+ * Added handling of INT signal for Merb server in foreground mode
427
+ * Remove redundant unescape for cookie string
428
+ * Ensure that Merb::Logger doesn't try to close terminal streams.
429
+ * Ensure that Merb::Logger doesn't try to close terminal streams.
430
+ * Added support for multiple keys to designate a resource. For use with Datamapper composite keys support http://www.datamapper.org/articles/spotlight_on_cpk.html
431
+ * Make Provide controller matcher doc conform to Merb standards.
432
+ * Whoops. Had target and expected backwards.
433
+ * Added Provide matcher class, so you can do "controller.should provide( :xml )" in your specs.
434
+ * completed spec to Merb::Logger#new
435
+ * Adding missing info about ebb adapter.
436
+ * Show merb usage if first argument is not a switch
437
+ * Fix a spelling error and properly RDoc'ify a method name
438
+ * Fix bug in --very-flat (allow direct inheritance from Merb::Controller)
439
+ * Changed copyright date in footer of HTML pages from 2007 to 2008
440
+ * Append the content_type to the given :template option for render()
441
+ * Replaced remaining ::STATUS constant references to .status method calls
442
+ * Refactored Exception status handling/inheritance (it actually works now!)
443
+ * Make Inflector#plural and Inflector#singular conform to Merb doc standard.
444
+ * Update inflector documentation.
445
+ * Tiny docs update to Merb::Server.
446
+ * Example (from merb_sequel) and corrections to the way Merb finds out plugins Rakefiles.
447
+ * Docs updates for lib/merb-core.rb.
448
+ * Reasonable doc examples for Merb.push_path and Merb.remove_paths.
449
+ * Fix for kill so that cli options are read and handled before kill is actually called. Need this to handle kill under custom pid file scenario.
450
+ * Updating pidfile cluster fix to handle any extension.
451
+ * Adding support for pidfile setting with cluster nodes setting. Moving pid file path lookup to separate method.
452
+ * Correction to Merb::GlobalHelper.log_path docs.
453
+ * Use Notes instead of Note in docs.
454
+ * Use Notes instead of Note everywhere in docs.
455
+ * Add reference to Merb configuration options list to #config method docs.
456
+ * Wording (Merb::GlobalHelpers.testing? docs).
457
+ * Better docs for configuration parameters.
458
+ * Document Merb configuration options in one place.
459
+ * Another note on framework freezing in docs.
460
+ * Add explaination of freezing to the documentation
461
+ * Add a note on supported session types.
462
+ * Insert line for viewing convenience.
463
+ * Make Merb::GlobalHelpers.deferrable_actions conform to Merb documentation standard.
464
+ * Missing documentation for Merb::GlobarHelpers.deferred_actions
465
+ * Update Kernel#__profile__ documentation.
466
+ * make in? splat args
467
+ * Add Object#in? for checking array inclusion
468
+ * Removed dependency on memcache-client 'memcache_util.rb' which was dependent on ActiveRecord::Base for logging exceptions.
469
+ * Update documentation to reflect changes in the way #display handles custom options.
470
+ * Make #display method pass all 'unknown' options to serialization method.
471
+ * Adds the github gemspec file
472
+ * Adds Code for generating a gemspec for github
473
+ * Adds a question method to determine environment. eg Merb.env?(:production)
474
+ * Give useful information when no template is found for a partial
475
+ * Really resolve merge conflicts.
476
+ * Provide hook for param filtering
477
+ * hopefully the last fix for session fixation, woot woot
478
+ * Be clear about what is the default init file Merb uses in RDoc.
479
+ * A bit clearer --init-file option description.
480
+ * Fix header shown in help: Merb is not longer 'Mongrel + Erb, a lightweight replacement for ActionPack' but a framework on it's own.
481
+ * Correct doc in Merb::Controller: it uses SimpleSet for callable actions at the moment.
482
+ * Document Merb::SimpleSet
483
+ * Remove InvalidPathConversion exception: it is used nowhere in the core.
484
+ * Update homepage in gem specification.
485
+ * Clean up String extensions spec.
486
+ * Remove it, hopefully no one seen it.
487
+ * Add a note on drawbacks of usage of ObjectSpace.
488
+ * Use a constant for reload spec instead of hardcoding time in 5 places or so.
489
+ * Revert "Refactor ToHashParser#from_xml a bit to be able to use parser faster than REXML. It is planned to support Hpricot and fall back to REXML."
490
+ * Use @ in publicity markers in RDoc.
491
+ * Use a constant for sleep time in reloading specs
492
+ * Refactor ToHashParser#from_xml a bit to be able to use parser faster than REXML. It is planned to support Hpricot and fall back to REXML.
493
+ * Empty lines management, how cool is that?
494
+ * Missing specs and improved documentation for Hash#to_mash.
495
+ * Tiny improvement to Object extensions documentation. More empty line management.
496
+ * One more example for Object#full_const_get; new spec group for Object#make_module.
497
+ * Missing specs for Object#full_const_path.
498
+ * Sweet empty lines management, what a wonderful way to apply yourself to.
499
+ * Kick off Class extensions spec-ing.
500
+ * Document inheritable attributes Class extension the Merb way, not ActiveSupport way with :nodoc:
501
+ * Remove Emacs-generated cruft from specs directory.
502
+ * Add missing specs for Class#reset_inheritable_attributes.
503
+ * Split Kernel#use_test into smaller methos. Document them. Add specs for them beforehand.
504
+ * Empty lines management, wonderful way to waste priceless time.
505
+ * Kernel#already_registred_orm? is a sucky name. Make it Kernel#registred_orm?. Yay.
506
+ * Split Kernel#use_orm guts into a bunch of smaller methods. Document those.
507
+ * Add missing specs for Kernel#dependencies and Kernel#load_dependencies.
508
+ * Pretty naive spec examples for Kernel#load_dependency.
509
+ * Add missing specs for Kernel#dependency
510
+ * Split 'misc' examples group in Kernel extensions spec: each method should have a separate group, ever.
511
+ * Clean up empty lines in Kernel extensions.
512
+ * Documentation for String#relative_path_from
513
+ * Add missing specs for String extensions.
514
+ * Remove helper that duplicated String#camel_case functionality, update the rest of spec suite.
515
+ * Fix a nasty String#camel_case bug revealed but new shiny spec for String extensions.
516
+ * Better formatting of spec suite run benchmark with good old sprintf.
517
+ * Use RSPEC_OPTS environment variable to override default spec run options.
518
+ * Report total spec suite run time.
519
+ * Add spec command run options to run_specs. Add tasks for profiled spec run.
520
+ * Unify &block documentation across Merb::Test::RequestHelper
521
+ * Fix example in Merb::Test::RequestHelper#request documentation.
522
+ * If deferred_actions are empty? we want a regex that will never match.
523
+ * More polish for deferred_actions support. Thin, Ebb and EMongrel adapters
524
+ * deferred?(env) now works with thin and ebb.
525
+ * Fixed some its vs. it's issues. (Learning git :)
526
+ * added delete action to docs
527
+ * Added error message for when a content_type is requested but not provided
528
+ * Syncronized code with rails branch. Delete call is required, because user cookie must be cleaned when TamperedWithCookie is raised.
529
+ * Specs using a method that called must_support_streaming! weren't recognizing the custom NotImplemented error. This change fixes this issue by specifying the entire object chain for its usage within the method.
530
+ * Fix number of examples in HTTP authentication spec.
531
+ * first step to adding deferred?(env) support for ebb and thin
532
+ * Use a dictionary instead of a Hash.
533
+ * Changed the display method to handle options properly, so that passing :layout => :false works. Added specs.
534
+ * Added \- to String.unescape_regexp
535
+ * added HasContent matcher
536
+ * Standardises the call to set_cookie to use the set_cookie method in cookies.rb by default
537
+ * Fix cookie sessions bug where you could not properly delete a cookie
538
+ * should not delete the key
539
+ * pass arguments to filters
540
+ * Added thrown_content? predicate method for use in templates.
541
+ * Added ability to specify :format in url() for named routes
542
+ * modified specs to test a route restriction based on the type of request (POST, GET, UPDATE, DELETE)
543
+ * Added 'use_orm :dm_core' option to use datamapper 0.9.0 with the dm-merb gem from dm-more
544
+ * fixed example for dispatch_with_basic_authentication_to
545
+ * Fixed typo
546
+ * reverted mistakenly introduced change in abstract controller
547
+ * added documentation
548
+ * slight fix to basic auth spec
549
+ * added support and specs for http basic authorization
550
+ * added dispatch helper for http basic authentication
551
+ * HTTP Basic authentication based on Rack
552
+ * Fixed lurking infinite loop with not so common formats and ExceptionController
553
+ * Refactored Merb::AbstractController.layout class method
554
+ * _dispatch returns @body
555
+ * really truly(?) fix stream_file ?
556
+ * really make sure stream_file works
557
+ * redo stream_file to (hopefully) work
558
+ * Added Time#to_json to Core Extensions, making the default JSON formatted output for Time objects ISO 8601 compatible.
559
+ * Added + unescape to String#unescape_regexp
560
+ * Added String#unescape_regexp for usage in Router::Route#generate
561
+ * BootLoader::LoadClasses now logs the actual exceptions
562
+ * add mutex around compiled statement generation in the router so reloading doesn't step
563
+ * Revert ExampleGroup changes as they were causing failing specs
564
+ * Added render(template_path) feature to view specs.
565
+ * RSpec ExampleGroups for Merb controllers, views, helpers, models and routes.
566
+ * Prep 0.9.2
567
+ * Resolves #209
568
+ * * removed Merb.logger calls due to the fact the bootloader did not ran by now and it is not initialized.
569
+ * use __send__ rather than send
570
+ * Fixed exception setting route when route_index is nil
571
+ * memoize the raw_post body after its called once
572
+ * fix Request#raw_post to respect bodies with no rewind method
573
+ * remove Kernel#requires it wasn't being used.
574
+ * Move fixation to post initialize
575
+ * typo
576
+ * add specs for does_not_provide
577
+ * Add specs for action-level only_provides
578
+ * Make controller.route work
579
+ * Update Ebb adapter to work with latest Ebb 0.1.0 [Ry Dahl]
580
+ * fix PATH_INFO bug for fcgi
581
+ * Rename url_with_host to absolute_url
582
+ * Add url_with_host() and allow params to be pushed into FCGI adapter
583
+ * More correct to_json of dictionary.
584
+ * Modify dispatcher to be sane to XHRs; add to_json to dictionaries.
585
+ * Added html_escape around the exception.message in the show details section.
586
+ * Fixed bug not allowing have_tag to be called without a attribute hash, even when one is not desired
587
+ * fix typo
588
+ * refactor and clean up Merb::BootLoader::Dependencies [James Herdman]
589
+ * ticket 202
590
+ * This keeps erroring out, i hope it didnt commit multiple times:
591
+ * Merb::BootLoader::LoadClasses should keep unique list of classes
592
+ * Logger now works as expected, fixed ReloadClasses bootloader
593
+ * Fixes cookie sessions when the session is blanked out.
594
+ * catch_content should default to :for_layout
595
+ * Added --sandbox (-S) option for IRB console
596
+ * Fixes the dispatch_to request helper to conver the action name to a string.
597
+ * Added Merb.testing? method
598
+ * Fixed critical bug in LoadClasses BootLoader concerning reloading
599
+ * Important changes to the BootLoader process
600
+ * Added Kernel.load_dependencies method; better docs/comments.
601
+ * Bugfixes concerning BootLoader and load order in general
602
+ * fully qualify fcgi rack handler
603
+ * Set mongrel as default adapter unless other alternative options are specified
604
+ * Fix configuring session_id_key so that it works
605
+ * url(:foo, 3) should notice 3 is a Fixnum, and use it instead of 3.id
606
+
607
+ == 0.9.3 "We Sold Our Soul for Rock 'n' Roll" 2008-05-03
608
+ * Added render(template_path) feature to view specs.
609
+ * add mutex around compiled statement generation in the router so reloading doesn't step
610
+ * BootLoader::LoadClasses now logs the actual exceptions
611
+ * Added String#unescape_regexp for usage in Router::Route#generate
612
+ * Added Time#to_json to Core Extensions so JSON formatted output for Time is ISO 8601 compatible
613
+ * redo stream_file to (hopefully) work
614
+ * _dispatch returns @body
615
+ * Refactored Merb::AbstractController.layout class method
616
+ * Fixed lurking infinite loop with not so common formats and ExceptionController
617
+ * HTTP Basic authentication based on Rack
618
+ * added dispatch helper for http basic authentication
619
+ * added support and specs for http basic authorization
620
+ * modified specs to test a route restriction based on the request method
621
+ * Added ability to specify :format in url() for named routes
622
+ * Added thrown_content? predicate method for use in templates.
623
+ * pass arguments to filters
624
+ * Fix cookie sessions bug where you could not properly delete a cookie
625
+ * Standardises the call to set_cookie to use the set_cookie method in cookies.rb by default
626
+ * added HasContent matcher
627
+ * Added \- to String.unescape_regexp
628
+ * Changed the display method to handle options properly, so that passing :layout => :false works.
629
+ * Added error message for when a content_type is requested but not provided
630
+ * added delete action to docs
631
+ * deferred?(env) now works with thin and ebb.
632
+ * If deferred_actions are empty? we want a regex that will never match.
633
+ * Fix example in Merb::Test::RequestHelper#request documentation.
634
+ * Unify &block documentation across Merb::Test::RequestHelper
635
+ * Add spec command run options to run_specs. Add tasks for profiled spec run.
636
+ * Report total spec suite run time.
637
+ * Use RSPEC_OPTS environment variable to override default spec run options.
638
+ * Better formatting of spec suite run benchmark with good old sprintf.
639
+ * Fix a nasty String#camel_case bug revealed but new shiny spec for String extensions.
640
+ * Remove helper that duplicated String#camel_case functionality, update the rest of spec suite.
641
+ * Split 'misc' examples group in Kernel extensions spec: each method should have a separate group
642
+ * Split Kernel#use_orm guts into a bunch of smaller methods. Document those.
643
+ * Kernel#already_registred_orm? is a sucky name. Make it Kernel#registred_orm?. Yay.
644
+ * Split Kernel#use_test into smaller methos. Document them. Add specs for them beforehand.
645
+ * Use a constant for sleep time in reloading specs
646
+ * Use @ in publicity markers in RDoc.
647
+ * Remove InvalidPathConversion exception: it is used nowhere in the core.
648
+ * A bit clearer --init-file option description.
649
+ * Be clear about what is the default init file Merb uses in RDoc.
650
+ * hopefully the last fix for session fixation, woot woot
651
+ * Provide hook for param filtering
652
+ * Give useful information when no template is found for a partial
653
+ * Adds a question method to determine environment. eg Merb.env?(:production)
654
+ * Make #display method pass all 'unknown' options to serialization method.
655
+ * Add Object#in? for checking array inclusion
656
+ * Update Kernel#__profile__ documentation.
657
+ * Adding support for pidfile setting with cluster nodes setting.
658
+ * Updating pidfile cluster fix to handle any extension.
659
+ * Fix for kill so that cli options are read and handled before kill is actually called.
660
+ * Refactored Exception status handling/inheritance (it actually works now!)
661
+ * Replaced remaining ::STATUS constant references to .status method calls
662
+ * Append the content_type to the given :template option for render()
663
+ * Fix bug in --very-flat (allow direct inheritance from Merb::Controller)
664
+ * Show merb usage if first argument is not a switch
665
+ * Adding missing info about ebb adapter.
666
+ * completed spec to Merb::Logger#new
667
+ * Added Provide matcher class, so you can do "controller.should provide( :xml )" in your specs.
668
+ * Added support for multiple keys to designate a resource. For use with Datamapper composite keys
669
+ * Ensure that Merb::Logger doesn't try to close terminal streams.
670
+ * Remove redundant unescape for cookie string
671
+ * Added handling of INT signal for Merb server in foreground mode
672
+ * params array serialization
673
+ * Fixing pidfiles glob on cluster and pidfile argument
674
+ * test request helpers support namespaced routes
675
+ * Testing Merb::Test::RequestHelper#request method to properly handle namespaced routes
676
+ * Provide opts for alternate rackup config path.
677
+ * Add new -R/--rackup option to the full(-ish) list of options.
678
+ * Make change_priveledge actually work
679
+ * Allow http status to be a symbol - refactored String snake_case method
680
+ * removing __app_file_trace__ since it doesn't work.
681
+
682
+ == 0.9.2 "appropriate response to reality" 2008-03-24
683
+ * removed Merb.logger calls due to the fact the bootloader did not ran by now and it is not initialized.
684
+ * use __send__ rather than send
685
+ * Fixed exception setting route when route_index is nil
686
+ * memoize the raw_post body after it's called once
687
+ * fix Request#raw_post to respect bodies with no rewind method
688
+ * remove Kernel#requires it wasn't being used.
689
+ * Move fixation to post initialize
690
+ * add specs for does_not_provide
691
+ * Add specs for action-level only_provides
692
+ * Make controller.route work
693
+ * Update Ebb adapter to work with latest Ebb 0.1.0 [Ry Dahl]
694
+ * fix PATH_INFO bug for fcgi
695
+ * Rename url_with_host to absolute_url
696
+ * Add url_with_host() and allow params to be pushed into FCGI adapter
697
+ * More correct to_json of dictionary.
698
+ * Modify dispatcher to be sane to XHRs; add to_json to dictionaries.
699
+ * Added html_escape around the exception.message in the show details section.
700
+ * Fixed bug not allowing have_tag to be called without a attribute hash, even when one is not desired
701
+ * refactor and clean up Merb::BootLoader::Dependencies [James Herdman]
702
+ * Merb::BootLoader::LoadClasses should keep unique list of classes
703
+ * Logger now works as expected, fixed ReloadClasses bootloader
704
+ * Fixes cookie sessions when the session is blanked out.
705
+ * catch_content should default to :for_layout
706
+ * Added --sandbox (-S) option for IRB console
707
+ * Added Merb.testing? method
708
+ * Fixes the dispatch_to request helper to conver the action name to a string.
709
+ * Added Merb.testing? method
710
+ * Fixed critical bug in LoadClasses BootLoader concerning reloading
711
+ * Important changes to the BootLoader process
712
+ * Added Kernel.load_dependencies method; better docs/comments.
713
+ * Bugfixes concerning BootLoader and load order in general
714
+ * fully qualify fcgi rack handler
715
+ * Set mongrel as default adapter unless other alternative options are specified
716
+ * Fix configuring session_id_key so that it works
717
+ * url(:foo, 3) should notice 3 is a Fixnum, and use it instead of 3.id
718
+ * make load order of core_ext explicit
719
+ * Modifies before/after in BootLoader to actually work.
720
+ * ix not-available vs. not-provided bug in content negotiation
721
+ * Fixed display bug which caused default error exception pages to improperly display drop-down twirly if the path name exceeded the line length.
722
+ * remove symbolize_keys! as we don't use it anywhere. by now..
723
+ * Rework bootloader to make more sense for flat apps (specifically framework load)
724
+ * More fixes to the flat autoloader
725
+ * remove custom_* resource route, use :member or :collection instead
726
+ * fix logger specs
727
+ * Fixes bug with framework not being defined.
728
+ * make sure logger bang! methods do not flush unless the proper log level is used.
729
+ * Updates the request spec to account for the new from_xml behaviour
730
+ * Adds specs and changes for compatibility with ActiveSupport. There is one caveat. It will not change YAML generated Hash keys to strings if they are defined as symbols as is currently the behaviour of ActiveSupport.
731
+ * update the logger. no longer accept an optional block to call.
732
+ * remove some vestigal config defaults
733
+ * Add rack adapter for Ebb, damn it's fast!
734
+ * coerce the port to an integer when starting mongrel (jruby compat)
735
+ * remove specs for dependency as they were broittle and not testing the right thing.
736
+ * Fixes #155 (_perform_content_negotiation doesn't find */* if it comes last in the accept header order, and nothing else matches)
737
+ * Changes use_test to wrap only the call to dependencies in the check for Merb.environment == "test"
738
+
739
+ == 0.9.1 "Some are half-wild, and some are just outlaws." 2008-02-29
740
+
741
+ * Put spec tasks into namespaces and method for specifying pnly a certain model/controller/view to run against
742
+ * As a last resort, look for */* in the formats before throwing NotAcceptable (TODO: Clean this up)
743
+ * Fix perform_content_negotiation to correctly handle :format in params. Fix render_* to correctly return the correct content_type.
744
+ * remove hooks.rb, they were premature and only used in one place
745
+ * fix evented mongrel to not go crazy
746
+ * Calling /foo.pdf should throw a 406 if :pdf is not a registered mime.
747
+ * touch up dispatcher a bit, remove some un-needed code from the hot path
748
+ * fix dispatcher to not parse the params twice, still supports request_params
749
+ * fix Exception in exception.html.erb
750
+ * moved rspec rake tasks into core. Added Merb.rakefiles, which is now used by Merb::Plugins.rakefiles. Changed Kernel#use_test to only load dependency arguments when Merb.env is nil or test.
751
+ * do not load test framework unless Merb.env == 'test'
752
+ * Use new Object.make_module to create the module instead of old hackish solution.
753
+ * Don't clear our mimes previously defined.
754
+ * Fixed clean task deleting everything in the lib folder
755
+ * Kernel#dependency requires gems/files in a before_app_loads block.
756
+ * Move dependency loading after framework and look for framework.rb
757
+ * Creates helper stub modules for controllers.
758
+ * fix blank path error.
759
+ * Cooler errors
760
+ * add named routes to error page
761
+ * updates to nested resources
762
+ * get autotest working for merb-core
763
+ * Symbolize params in route generation, to accomodate Mashes
764
+ * Fixes :status not working on strings.
765
+ * update thin adapter to newest way of silencing the log
766
+ * :format => :html possible in partials
767
+ * print request URI when "No routes match the request" error thrown
768
+ * fix merb -i
769
+ * Make Merb.start default to the runner adapter
770
+ * It's now possible to send binary data using the send_data method
771
+ and to specify the disposition, filename and type of the data being sent.
772
+ * Fix memcached session writes
773
+ * allow the setting of a custom session key
774
+ * Changed TemplateNotFound to stop so much confusion about incorrect
775
+ template locations because it doesn't include .*
776
+ * fix dropping of pid files in cluster and daemon mode
777
+ * Nested partials don't blow away locals.
778
+ * Better loading of classes
779
+ * Support concat and test capture/concat
780
+ * Added single key assignment to Merb.config
781
+ * Move url method from ControllerMixin to AbstractController for use in
782
+ Mailers and Parts etc.
783
+ * Merb.config now returns Merb::Config instead of the current
784
+ configuration hash.
785
+ * Added Merb.reload which reloads the framework classes.
786
+ * Adding Merb.env shorthand for Merb.environment
787
+ * Added a quaint Merb Configurator
788
+ * With bootloader order changes, environment was not getting loaded
789
+ * Fix cookie parsing from localhost, add spec
790
+ * Add support for multiple template roots
791
+ * Allow override of router.rb file in config
792
+ * Modify behavior of 'namespace' in the router
793
+ * Fix content negotiation for IE and its stupid accept header.
794
+ * Only serve static files when the HTTP method is GET or HEAD. Other
795
+ requests should still be handled by Merb.
796
+ * Add path_prefix support.
797
+ * Changes dispatch_to spec helper to yield the controller
798
+ * redo of load_dependency, after_app_loads callback, and Kernel changes
799
+ * Added Merb.logger.auto_flush
800
+ * Fix nested resource routing
801
+ * Do not drop PID file is not running as daemon or cluster
802
+ * Fixed problem with resources inside a namespace block
803
+ * Added support for dynamic layouts.
804
+ * adding conditional behaviour to filters :if and :unless
805
+ * Use the escape_xml from Erubis rather than rolling our own
806
+ * Add a merb.reload! command to the merb -i console.
807
+ * Get rid of StringScanner dependency.
808
+ * Fix render_then_call to support new streaming tech.
809
+ * Fix filter specs to respect append order of filters.
810
+ * check for empty string before calling to_sym on the format parameter
811
+ * fake requests are incorrectly loading controller classes with namespaces
812
+ * Fix the RubyGems monkeypatch by testing for Merb.root instead of looking in $"
813
+ * fix core spec dependency on merb_rspec
814
+ * Replace calls to puts with Merb.logger
815
+ * Fix problem with static files, use Proc === body
816
+ * Added file and line information for evals in router.rb.
817
+
818
+ == 0.9.0 "All you need, none you don't" 2008-02-13
819
+ * Developer Only Release
820
+ * Split merb into merb-core and merb-more
821
+
822
+ == 0.5.3 "Inexperienced With Girls" 2008-01-28
823
+ * Improved handling of models/controllers with dependencies
824
+ * Improved cluster starting/stopping
825
+ * Frozen script/merb should really work now
826
+ * Merb::Cookies is used for cookie jar purposes
827
+ * test_helper no longer assumes rspec mocking framework
828
+ * asset bundler handles strings and symbols
829
+ * render() now has an option for explicitly rendering an object
830
+ * Fixed annoying bug in exception rendering for 500 internal_server_error
831
+ * testing request helper accepts an option hash
832
+
833
+ == 0.5.2 "Great White North" 2008-01-14
834
+ * Make Merb.load_paths accessible for modification
835
+ * Fix issues with running frozen apps
836
+
837
+ == 0.5.1 "Electic Boogaloo" 2008-01-10
838
+ * Fix 0.5.0
839
+
840
+ == 0.5.0 "Thanks Zed" 2008-01-09
841
+ * Added asset bundling for Javascript and stylesheet files
842
+
843
+ == 0.4.2 "Surf's up." 2007-12-14
844
+ * Super-huge speed boost for rendering Erubis templates with partials
845
+ * Windows-specific fixes to Merb's Rakefile
846
+ * Blocking write is called when in development, test, Windows and jRuby environments and platforms.
847
+ * merb_helpers: form field labels are now explicit, huge documentation update, added select, fieldset, more helpers
848
+ * Fixed merb.show_routes within merb -i
849
+ * Fixed image_tag, css_include_tag, and js_include_tag to work with path_prefix
850
+ * Adds spec helper methods with_route and dispatch_to
851
+ * fix rakefile cfor cygwin
852
+ * add count with collection to partial()
853
+ * Form control mixin is deprecated Use merb_helpers plugin.
854
+ * add redirect matcher to rspec test helpers
855
+ * allow r.resource(:foo, :myparam => 42) resource routes pass on params to underlying match() call
856
+ * spit out error and help message if you call merb with no args
857
+ * get rid of dependency on mongrel for escape and unescape
858
+ * make sure not to use write_nonblock when logging to STDOUT
859
+ * Fixed image_tag, css_include_tag, and js_include_tag to work with path_prefix
860
+ * fix set_status to actually work, add docs,
861
+ * config/merb.yml is now correctly loaded from Rake and test environment - using Merb::Server.load_config
862
+ * added config option to disable loading of the JSON gem - still enabled by default
863
+ * don't raise if names local on a partial is nil
864
+ * Use svn export instead of checkout upon merb:freeze_from_svn
865
+ * Extracted url and other general methods out of ControllerMixin into GeneralControllerMixin
866
+ * fix caching of @_buffer in render, form_for
867
+ * Seperates spec helpers into the Merb::Test namespace to prevent spec methods leaking into specs
868
+ * Changes the spec url helper method to the same used in the controller
869
+ * Made Request#parse_multipart return an empty hash instead of nil if the request is not multipart
870
+ * Changes throw_content so that it can be called without a block
871
+ * Added :namespace option to routes.
872
+
873
+ == 0.4.1 "Faster Partials or Partially Faster?" 2007-11-12
874
+ * Fixed pluralization issues with generators
875
+ * Resource generators are much improved
876
+ * url() helper now supports nested resources
877
+ * url(:post, @post) observers @post.new_record? and adjusts accordingly
878
+ * Fixed bug with empty Accept headers
879
+ * Added config/boot.rb to load framework from gems or framework/ dir
880
+ * New partial() is much faster (and less buggy)
881
+ * render :partial no longer supported
882
+ * Add a buffered logger
883
+ * Fixes bug with parameterized actions on some platforms
884
+ * partial can now be called on collections:
885
+ * partial("widget", :with => @new_widgets, :as => "widget")
886
+ * SMTP mailer now supports non-AUTH setups
887
+ * set_status() can take symbolic codes like :not_found
888
+ * JRuby compat fixes
889
+ * Speed boost, esp. with rendering
890
+ * Fix spec_helper running against development database
891
+ * Fix major bug with sessions not working
892
+
893
+ == 0.4.0 "This ain't yo mommas merb" 2007-11-06
894
+
895
+ == 0.3.7 "Out of the basement" 2007-08-05
896
+
897
+ == 0.3.4 "Route fixer" 2007-05-31
898
+
899
+ == 0.3.3 "Hey buddy can you spare a route generator?" 2007-05-31
900
+
901
+ == 0.3.1 "The Fixed and the Furious" 2007-04-30
902
+
903
+ == 0.3.0 "The Fast and the Furious" 2007-04-28
904
+
905
+ == 0.2.0 "Accept your fate and respond_to change" 2007-03-18
906
+
907
+ == 0.1.0 "Generation Herb" 2007-01-18
908
+
909
+ == 0.0.9 "merb is the new black" 2007-01-14
910
+
911
+ == 0.0.8 "Merbivore" 2006-12-17
912
+
913
+ == 0.0.7 "Lean and mean merbing machine" 2006-11-29
914
+
915
+ == 0.0.6 "The Black Belt Release" 2006-11-09
916
+
917
+ == 0.0.5 "The getting real release" 2006-11-01
918
+
919
+ == 0.0.4 "The toddler phase" 2006-10-26
920
+
921
+ == 0.0.3 "the switchblade suicide release" 2006-10-17
922
+
923
+ == 0.0.2 "the quicksliver release" 2006-10-16
924
+
925
+ == 0.0.1 "The pocket rocket release" 2006-10-15