2.62 2012-03-17 00:00:00
- Deprecated Mojolicious::Renderer->default_template_class in favor
of Mojolicious::Renderer->classes.
- Deprecated Mojolicious::Static->default_static_class in favor of
Mojolicious::Static->classes.
- Added options function to Mojolicious::Lite.
- Added options method to Mojolicious::Routes.
- Added options method to Mojo::UserAgent.
- Added options_ok method to Test::Mojo.
- Added o function to ojo.
- Removed experimental status from Mojo::Cache.
- Removed experimental status from Mojo::DOM::CSS.
- Removed experimental status from Mojo::DOM::HTML.
- Removed experimental status from Mojo::Server::Morbo.
- Removed experimental status from Mojo::Transaction::WebSocket.
- Removed experimental status from Mojo::UserAgent::Transactor.
- Removed experimental status from Mojolicious::Command::cpanify.
- Removed experimental status from upgrade event in
Mojo::Transaction::HTTP.
- Removed experimental status from t helper in
Mojolicious::Plugin::TagHelpers.
- Removed experimental status from current_route and url_with helpers
in Mojolicious::Plugin::DefaultHelpers.
- Removed experimental status from websocket function in
Mojolicious::Lite.
- Removed experimental status from cache attribute in
Mojolicious::Renderer.
- Removed experimental status from format attribute in
Mojolicious::Routes::Pattern.
- Removed experimental status from ca and local_address,
request_timeout and transactor attributes in Mojo::UserAgent.
- Removed experimental status from cache attribute in
Mojolicious::Routes.
- Removed experimental status from send method in
Mojolicious::Controller.
- Removed experimental status from finish_ok, message_is,
message_isnt, message_like, message_unlike, send_ok and
websocket_ok methods in Test::Mojo.
- Removed experimental status from detect method in
Mojolicious::Types.
- Removed experimental status from app_url, build_websocket_tx and
websocket methods in Mojo::UserAgent.
- Removed experimental status from emit_safe method in
Mojo::EventEmitter.
- Removed experimental status from to_psgi_app method in
Mojo::Server::PSGI.
- Removed experimental status from clone method in
Mojo::Message::Request.
- Removed experimental status from has_conditions, has_custom_name,
has_websocket, is_websocket and websocket methods in
Mojolicious::Routes.
- Removed experimental status from clone, is_limit_exceeded and
max_line_size methods in Mojo::Headers.
- Removed experimental status from text_after, text_before and xml
methods, as well as trim arguments in Mojo::DOM.
- Removed experimental status from boundary, charset, clone,
is_dynamic, progress and max_leftover_size methods in
Mojo::Content.
- Removed experimental status from clone method in
Mojo::Content::MultiPart.
- Removed experimental status from clone method in
Mojo::Content::Single.
- Removed experimental status from is_dynamic, is_limit_exceeded and
max_line_size methods in Mojo::Message.
- Improved Mojo::IOWatcher exception handling a little.
- Improved Mojolicious::Routes logging.
- Improved documentation.
- Improved tests.
- Fixed port generation bug. (xaka)
- Fixed IPv6 listen value bug in Mojo::Server::Daemon.
2.61 2012-03-14 00:00:00
- Merged Mojolicious exception handling into the around_dispatch
hook, this will allow a whole new category of exception handling
plugins.
- Improved documentation.
2.60 2012-03-13 00:00:00
- Added EXPERIMENTAL current_route helper to
Mojolicious::Plugin::DefaultHelpers.
- Made text_area helper a little smarter. (sshaw, sri)
- Improved inactivity timeout logging for WebSockets.
- Improved documentation.
- Improved tests.
- Fixed escaping bug in select_field and text_area helpers.
- Fixed Windows bug in "asset.t".
2.59 2012-03-09 00:00:00
- Removed duplicate 2.58 directory.
2.58 2012-03-09 00:00:00
- Added support for MOJO_LISTEN environment variable.
- Removed listen attribute from Mojo::Server::Morbo.
- Improved event loop compatibility of Mojo::Server::PSGI.
- Improved documentation.
- Improved tests.
- Fixed Mojo::URL object handling bug in url_for.
- Fixed bug in Hypnotoad that prevented disabling of reverse proxy
support between zero downtime software upgrades.
- Fixed small caching bug in Morbo file watcher.
- Fixed Windows bug in "asset.t".
2.57 2012-03-03 00:00:00
- Replaced protection from excessively large form values in
Mojo::Message with documentation.
- Improved documentation.
2.56 2012-03-01 00:00:00
- Deprecated custom HTTPS listen values in favor of URLs for all
built-in web servers.
https://*:3000:/x/server.crt:/y/server.key:/z/ca.crt
becomes
https://*:3000?cert=/x/server.crt&key=/y/server.key&ca=/z/ca.crt
- Removed experimental status from patch function in
Mojolicious::Lite.
- Removed experimental status from patch method in
Mojolicious::Routes.
- Removed experimental status from patch method in Mojo::UserAgent.
- Removed experimental status from patch_ok method in Test::Mojo.
- Removed experimental status from t function in ojo.
- Improved documentation.
- Fixed small inconsistency between Mojo::IOWatcher and
Mojo::IOWatcher::EV where Mojo::IOWatcher wouldn't stop
automatically when not watching for events anymore.
- Fixed Mojo::IOLoop to clean up after itself.
2.55 2012-02-28 00:00:00
- Combined WebSocket timeout with normal inactivity timeout.
- Improved documentation.
2.54 2012-02-27 00:00:00
- Deprecated class and method stash values in favor of controller and
action.
- Added EXPERIMENTAL patch function to Mojolicious::Lite.
- Added EXPERIMENTAL patch method to Mojolicious::Routes.
- Added EXPERIMENTAL patch method to Mojo::UserAgent.
- Added EXPERIMENTAL patch_ok method to Test::Mojo.
- Added EXPERIMENTAL t function to ojo.
- Added support for MOJO_CONNECT_TIMEOUT, MOJO_INACTIVITY_TIMEOUT,
MOJO_REQUEST_TIMEOUT and MOJO_WEBSOCKET_TIMEOUT environment
variables.
- Split up Mojolicious::Guides::Cheatsheet into more reference
documentation.
- Increased default connect timeout from 3 to 10 seconds in
Mojo::UserAgent and Mojo::IOLoop::Client.
- Improved resilience of Mojo::IOLoop::Stream.
- Improved test command to colorize by default.
- Improved documentation.
- Fixed small rendering bug in Mojolicious::Plugin::PODRenderer.
2.53 2012-02-25 00:00:00
- Improved Hypnotoad with many info level log messages.
- Improved resilience of Mojo::IOLoop::Stream.
- Improved documentation.
- Fixed Hypnotoad upgrade timeout bug.
2.52 2012-02-24 00:00:00
- Removed experimental status from config method in Mojo.
- Renamed send_message method in Mojolicious::Controller to send.
- Renamed send_message_ok method in Test::mojo to send_ok.
- Renamed to_psgi method in Mojo::Server::PSGI to to_psgi_app.
- Combined send_message and send_frame methods in
Mojo::Transaction::WebSocket to send.
- Improved emit_chain method in Mojolicious::Plugins to allow
reforwarding. (jamadam)
- Improved documentation.
- Fixed bug that prevented Mojo::IOLoop from dying when started
twice.
- Fixed a cookie jar path parsing bug. (marcus)
- Fixed multiple value bug in param method of
Mojolicious::Controller.
2.51 2012-02-19 00:00:00
- Added EXPERIMENTAL to_psgi method to Mojo::Server::PSGI.
- Removed experimental status from around_dispatch hook.
- Removed experimental status from emit_chain method in
Mojolicious::Plugins.
- Removed experimental status from drain event in Mojo::Content.
- Improved portability of scripts.
- Improved documentation.
- Fixed bug that can prevent foreign event loops from being able to
control Mojo::IOLoop.
2.50 2012-02-18 00:00:00
- Added EXPERIMENTAL is_running method to Mojo::IOWatcher and
Mojo::IOWatcher::EV.
- Added file upload support to param method in
Mojolicious::Controller.
- Removed gitignore command.
- Improved Mojo::IOLoop to be controllable from foreign event loops.
- Improved protection from excessively large form values in
Mojo::Message.
- Improved resilience of Mojo::IOLoop::Client.
- Improved documentation.
- Fixed Mojo::Template expressions and escaped expressions to
consistently enforce scalar context.
- Fixed small bugs in makefile command. (tempire, marcus, sri)
2.49 2012-02-13 00:00:00
- Deprecated Mojolicious::Renderer->root in favor of
Mojolicious::Renderer->paths. (memowe, sri)
- Deprecated Mojolicious::Static->root in favor of
Mojolicious::Static->paths. (memowe, sri)
- Added support for multiple "templates" and "public" directories to
Mojolicious. (memowe, sri)
- Improved version command to be more responsive. (crab)
- Improved resilience of Mojo::IOLoop::Client.
- Improved documentation.
- Improved tests.
- Fixed parent combinator bug in Mojo::DOM::CSS. (sharifulin, sri)
## Rails 3.2.2 (unreleased) ##
* Format lookup for partials is derived from the format in which the template is being rendered. Closes#5025 part 2 *Santiago Pastorino*
* Use the right format when a partial is missing. Closes#5025. *Santiago Pastorino*
* Default responder will now always use your overridden block in `respond_with` to render your response. *Prem Sichanugrist*
* check_box helper with :disabled => true will generate a disabled hidden field to conform with the HTML convention where disabled fields are not submitted with the form.
This is a behavior change, previously the hidden tag had a value of the disabled checkbox.
*Tadas Tamosauskas*
## Rails 3.2.1 (January 26, 2012) ##
* Documentation improvements.
* Allow `form.select` to accept ranges (regression). *Jeremy Walker*
* `datetime_select` works with -/+ infinity dates. *Joe Van Dyk*
## Rails 3.2.0 (January 20, 2012) ##
* Setting config.assets.logger to false turn off Sprockets logger *Guillermo Iguaran*
* Add `config.action_dispatch.default_charset` to configure default charset for ActionDispatch::Response. *Carlos Antonio da Silva*
* Deprecate setting default charset at controller level, use the new `config.action_dispatch.default_charset` instead. *Carlos Antonio da Silva*
* Deprecate ActionController::UnknownAction in favour of AbstractController::ActionNotFound. *Carlos Antonio da Silva*
* Deprecate ActionController::DoubleRenderError in favour of AbstractController::DoubleRenderError. *Carlos Antonio da Silva*
* Deprecate method_missing handling for not found actions, use action_missing instead. *Carlos Antonio da Silva*
* Deprecate ActionController#rescue_action, ActionController#initialize_template_class, and ActionController#assign_shortcuts.
These methods were not being used internally anymore and are going to be removed in Rails 4. *Carlos Antonio da Silva*
* Add config.assets.logger to configure Sprockets logger *Rafael França*
* Use a BodyProxy instead of including a Module that responds to
close. Closes#4441 if Active Record is disabled assets are delivered
correctly *Santiago Pastorino*
* Rails initialization with initialize_on_precompile = false should set assets_dir *Santiago Pastorino*
* Add font_path helper method *Santiago Pastorino*
* Depends on rack ~> 1.4.0 *Santiago Pastorino*
* Add :gzip option to `caches_page`. The default option can be configured globally using `page_cache_compression` *Andrey Sitnik*
* The ShowExceptions middleware now accepts a exceptions application that is responsible to render an exception when the application fails. The application is invoked with a copy of the exception in `env["action_dispatch.exception"]` and with the PATH_INFO rewritten to the status code. *José Valim*
* Add `button_tag` support to ActionView::Helpers::FormBuilder.
This support mimics the default behavior of `submit_tag`.
Example:
<%= form_for @post do |f| %>
<%= f.button %>
<% end %>
* Date helpers accept a new option, `:use_two_digit_numbers = true`, that renders select boxes for months and days with a leading zero without changing the respective values.
For example, this is useful for displaying ISO8601-style dates such as '2011-08-01'. *Lennart Fridén and Kim Persson*
* Make ActiveSupport::Benchmarkable a default module for ActionController::Base, so the #benchmark method is once again available in the controller context like it used to be *DHH*
* Deprecated implied layout lookup in controllers whose parent had a explicit layout set:
class ApplicationController
layout "application"
end
class PostsController < ApplicationController
end
In the example above, Posts controller will no longer automatically look up for a posts layout.
If you need this functionality you could either remove `layout "application"` from ApplicationController or explicitly set it to nil in PostsController. *José Valim*
* Rails will now use your default layout (such as "layouts/application") when you specify a layout with `:only` and `:except` condition, and those conditions fail. *Prem Sichanugrist*
For example, consider this snippet:
class CarsController
layout 'single_car', :only => :show
end
Rails will use 'layouts/single_car' when a request comes in `:show` action, and use 'layouts/application' (or 'layouts/cars', if exists) when a request comes in for any other actions.
* form_for with +:as+ option uses "#{action}_#{as}" as css class and id:
Before:
form_for(@user, :as => 'client') # => "<form class="client_new">..."
Now:
form_for(@user, :as => 'client') # => "<form class="new_client">..."
*Vasiliy Ermolovich*
* Allow rescue responses to be configured through a railtie as in `config.action_dispatch.rescue_responses`. Please look at ActiveRecord::Railtie for an example *José Valim*
* Allow fresh_when/stale? to take a record instead of an options hash *DHH*
* Assets should use the request protocol by default or default to relative if no request is available *Jonathan del Strother*
* Log "Filter chain halted as CALLBACKNAME rendered or redirected" every time a before callback halts *José Valim*
* You can provide a namespace for your form to ensure uniqueness of id attributes on form elements.
The namespace attribute will be prefixed with underscore on the generate HTML id. *Vasiliy Ermolovich*
Example:
<%= form_for(@offer, :namespace => 'namespace') do |f| %>
<%= f.label :version, 'Version' %>:
<%= f.text_field :version %>
<% end %>
* Refactor ActionDispatch::ShowExceptions. The controller is responsible for choosing to show exceptions when `consider_all_requests_local` is false.
It's possible to override `show_detailed_exceptions?` in controllers to specify which requests should provide debugging information on errors. The default value is now false, meaning local requests in production will no longer show the detailed exceptions page unless `show_detailed_exceptions?` is overridden and set to `request.local?`.
* Responders now return 204 No Content for API requests without a response body (as in the new scaffold) *José Valim*
* Added ActionDispatch::RequestId middleware that'll make a unique X-Request-Id header available to the response and enables the ActionDispatch::Request#uuid method. This makes it easy to trace requests from end-to-end in the stack and to identify individual requests in mixed logs like Syslog *DHH*
* Limit the number of options for select_year to 1000.
Pass the :max_years_allowed option to set your own limit.
*Libo Cannici*
* Passing formats or handlers to render :template and friends is deprecated. For example: *Nick Sutterer & José Valim*
render :template => "foo.html.erb"
Instead, you can provide :handlers and :formats directly as option:
render :template => "foo", :formats => [:html, :js], :handlers => :erb
* Changed log level of warning for missing CSRF token from :debug to :warn. *Mike Dillon*
* content_tag_for and div_for can now take the collection of records. It will also yield the record as the first argument if you set a receiving argument in your block *Prem Sichanugrist*
So instead of having to do this:
@items.each do |item|
content_tag_for(:li, item) do
Title: <%= item.title %>
end
end
You can now do this:
content_tag_for(:li, @items) do |item|
Title: <%= item.title %>
end
* send_file now guess the mime type *Esad Hajdarevic*
* Mime type entries for PDF, ZIP and other formats were added *Esad Hajdarevic*
* Generate hidden input before select with :multiple option set to true.
This is useful when you rely on the fact that when no options is set,
the state of select will be sent to rails application. Without hidden field
nothing is sent according to HTML spec *Bogdan Gusiev*
* Refactor ActionController::TestCase cookies *Andrew White*
Assigning cookies for test cases should now use cookies[], e.g:
cookies[:email] = 'user@example.com'
get :index
assert_equal 'user@example.com', cookies[:email]
To clear the cookies, use clear, e.g:
cookies.clear
get :index
assert_nil cookies[:email]
We now no longer write out HTTP_COOKIE and the cookie jar is
persistent between requests so if you need to manipulate the environment
for your test you need to do it before the cookie jar is created.
* ActionController::ParamsWrapper on ActiveRecord models now only wrap
attr_accessible attributes if they were set, if not, only the attributes
returned by the class method attribute_names will be wrapped. This fixes
the wrapping of nested attributes by adding them to attr_accessible.
Tweak COMMENT.
## Rails 3.1.4 (unreleased) ##
* Skip assets group in Gemfile and all assets configurations options
when the application is generated with --skip-sprockets option.
*Guillermo Iguaran*
* Use ProcessedAsset#pathname in Sprockets helpers when debugging is on.
Closes#3333#3348#3361.
*Guillermo Iguaran*
* Allow to use asset_path on named_routes aliasing RailsHelper's
asset_path to path_to_asset *Adrian Pike*
* Assets should use the request protocol by default or default to relative
if no request is available *Jonathan del Strother*
pkgsrc change:
* Tweak COMMENT.
*Rails 3.0.12 (unreleased)*
* Fix using `tranlate` helper with a html translation which uses the `:count`
option for pluralization.
*Jon Leighton*
Changes with nginx 1.0.14
*) Security: content of previously freed memory might be sent to a
client if backend returned specially crafted response.
Thanks to Matthew Daley.
Changes with nginx 1.0.13
*) Feature: the "return" and "error_page" directives can now be used to
return 307 redirections.
*) Bugfix: a segmentation fault might occur in a worker process if the
"resolver" directive was used and there was no "error_log" directive
specified at global level.
Thanks to Roman Arutyunyan.
*) Bugfix: memory leaks.
Thanks to Lanshun Zhou.
*) Bugfix: nginx might log incorrect error "upstream prematurely closed
connection" instead of correct "upstream sent too big header" one.
Thanks to Feibo Li.
*) Bugfix: on ZFS filesystem disk cache size might be calculated
incorrectly; the bug had appeared in 1.0.1.
*) Bugfix: the number of internal redirects to named locations was not
limited.
*) Bugfix: temporary files might be not removed if the "proxy_store"
directive was used with SSI includes.
*) Bugfix: in some cases non-cacheable variables (such as the $args
variable) returned old empty cached value.
*) Bugfix: the "proxy_redirect" directives might be inherited
incorrectly.
*) Bugfix: nginx could not be built with the ngx_http_perl_module if the
--with-openssl option was used.
*) Bugfix: nginx could not be built by the icc 12.1 compiler.
Changes with nginx 1.0.12
*) Feature: the "TLSv1.1" and "TLSv1.2" parameters of the
"ssl_protocols" directive.
*) Feature: the "if" SSI command supports captures in regular
expressions.
*) Bugfix: the "if" SSI command did not work inside the "block" command.
*) Bugfix: in AIO error handling on FreeBSD.
*) Bugfix: in the OpenSSL library initialization.
*) Bugfix: the "worker_cpu_affinity" directive might not work.
*) Bugfix: the "limit_conn_log_level" and "limit_req_log_level"
directives might not work.
*) Bugfix: the "read_ahead" directive might not work combined with
"try_files" and "open_file_cache".
*) Bugfix: the "proxy_cache_use_stale" directive with "error" parameter
did not return answer from cache if there were no live upstreams.
*) Bugfix: a segmentation fault might occur in a worker process if small
time was used in the "inactive" parameter of the "proxy_cache_path"
directive.
*) Bugfix: responses from cache might hang.
*) Bugfix: in error handling while connecting to a backend.
Thanks to Piotr Sikora.
*) Bugfix: in the "epoll" event method.
Thanks to Yichun Zhang.
*) Bugfix: the $sent_http_cache_control variable might contain a wrong
value if the "expires" directive was used.
Thanks to Yichun Zhang.
*) Bugfix: the "limit_rate" directive did not allow to use full
throughput, even if limit value was very high.
*) Bugfix: the "sendfile_max_chunk" directive did not work, if the
"limit_rate" directive was used.
*) Bugfix: nginx could not be built on Solaris; the bug had appeared in
1.0.11.
*) Bugfix: in the ngx_http_scgi_module.
*) Bugfix: in the ngx_http_mp4_module.
Changes with nginx 1.0.11
*) Change: now double quotes are encoded in an "echo" SSI-command
output.
Thanks to Zaur Abasmirzoev.
*) Feature: the "image_filter_sharpen" directive.
*) Bugfix: a segmentation fault might occur in a worker process if SNI
was used; the bug had appeared in 1.0.9.
*) Bugfix: SIGWINCH signal did not work after first binary upgrade; the
bug had appeared in 1.0.9.
*) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
header lines might be passed to backend while caching; or not passed
without caching if caching was enabled in another part of the
configuration.
*) Bugfix: in the "scgi_param" directive, if complex parameters were
used.
*) Bugfix: "add_header" and "expires" directives did not work if a
request was proxied and response status code was 206.
*) Bugfix: in the "expires @time" directive.
*) Bugfix: in the ngx_http_flv_module.
Thanks to Piotr Sikora.
*) Bugfix: in the ngx_http_mp4_module.
*) Bugfix: nginx could not be built on FreeBSD 10.
*) Bugfix: nginx could not be built on AIX.