aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
* Raise a helpful error message on #mount misuseCarl Lerche2012-07-101-0/+4
|
* Rename RouteInspector to RoutesInspectorCarlos Antonio da Silva2012-07-082-3/+2
| | | | Follow the consistency defined in dbc43bc.
* move route_inspector to actionpack@schneems and @mattt2012-07-072-5/+128
| | | | this is so we can show route output in the development when we get a routing error. Railties can use features of ActionDispatch, but ActionDispatch should not depend on Railties.
* show routes while debugging RoutingErrorschneems2012-07-072-3/+20
| | | | If someone receives a routing error, they likely need to view the routes. Rather than making them visit '/rails/info/routes' or run `rake routes` we can give them that information on the page.
* Prevent conflict between mime types and Object methodsMircea Pricop2012-07-061-1/+12
| | | | | | | | | | | | | | | | | | | | | | | Assuming the type ":touch", Collector.new was calling send(:touch), which instead of triggering method_missing and generating a new collector method, actually invoked the private method `touch` inherited from Object. By generating the method for each mime type as it is registered, the private methods on Object can never be reached by `send`, because the `Collector` will have them before `send` is called on it. To do this, a callback mechanism was added to Mime::Type This allows someone to add a callback for whenever a new mime type is registered. The callback then gets called with the new mime as a parameter. This is then used in AbstractController::Collector to generate new collector methods after each mime is registered.
* add Mime.fetch so we can have default mime typesAaron Patterson2012-07-031-0/+5
|
* make the default environment have actual defaultsAaron Patterson2012-07-031-1/+7
| | | | | | instead of deleting keys on every instantiation, create defaults we actually use. eventually we can pass an environment in to the request, and create a new req / res object on each call.
* Merge pull request #6904 from guilleiguaran/remove-amo-dependency-in-apCarlos Antonio da Silva2012-06-301-7/+7
|\ | | | | Remove Active Model dependency from Action Pack
| * Remove ActiveModel dependency from ActionPackGuillermo Iguaran2012-06-301-7/+7
| | | | | | | | | | | | | | | | ActiveModel is used in ActionPack for ActiveModel::Naming for a few, mostly optional aspects of ActionPack related to automatically converting an ActiveModel compliant object into a key for params and routing. It uses only three methods of ActiveModel (ActiveModel::Naming.route_key, ActiveModel::Naming.singular_route_key and ActiveModel::Naming.param_key).
* | Revert "Allow loading external route files from the router"José Valim2012-06-292-19/+0
|/ | | | | | | | | | | | | | This reverts commit 6acebb38bc0637bc05c19d87f8767f16ce79189b. Usage of this feature did not reveal any improvement in existing apps. Conflicts: actionpack/lib/action_dispatch/routing/mapper.rb guides/source/routing.textile railties/lib/rails/engine.rb railties/lib/rails/paths.rb railties/test/paths_test.rb
* Ensure that cache-control headers are mergedJames Tucker2012-06-181-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | There are several aspects to this commit, that don't well fit into broken down commits, so they are detailed here: * When a user uses response.headers['Cache-Control'] = some_value, then the documented convention in ConditionalGet is not adhered to, in this case, response.cache_control is ignored due to `return if self[CACHE_CONTROL].present?` * When a middleware sets cache-control headers that would clobber, they're converted to symbols directly, without underscores. This would lead to bugs. * Items that would live in :extras if set through expires_in, are placed directly in the @cache_control hash, and not respected in many cases (somewhat adhering to the aforementioned documentation). * Although quite useless, any directive named 'extras' would be ignored. The general convention applied is that expires_* take precedence, but no longer overwrite everything and expires_* are ALWAYS applied, even if the header is set. I am still unhappy about the contents of this commit, and the code in general. Ideally it should be refactored to no longer use :extras. I'd likely recommend expanding @cache_control into a class, and giving it the power to handle the merge in a more efficient fashion. Such a commit would be a larger change that could have additional semantic changes for other libraries unless they utilize expires_in in very standard ways.
* Support unicode character route in config/routes.rb.kennyj2012-06-162-1/+8
|
* Use status, content_type, body method signature for render tooSantiago Pastorino2012-06-141-4/+3
|
* Refactor public exceptions to reuse render format methodCarlos Antonio da Silva2012-06-141-9/+6
|
* These lines don't help to mitigate CVE. They only turn [nil] into nil, w/o ↵Egor Homakov2012-06-131-3/+0
| | | | | | them [nil] turns into [] and that is quite innocent. generated SQL - `IN (NULL)` compact! did all the job.
* Merge branch 'master-sec'Aaron Patterson2012-06-121-2/+4
|\ | | | | | | | | * master-sec: Array parameters should not contain nil values.
| * Array parameters should not contain nil values.Aaron Patterson2012-06-121-2/+4
| |
* | content_type is already a Mime::Type objectSantiago Pastorino2012-06-121-1/+1
| |
* | This consider_all_requests_local doesn't make senseSantiago Pastorino2012-06-121-3/+2
|/ | | | | This middleware is only for Public Exceptions. This follows bd8c0b8a
* Return proper format on exceptionsSantiago Pastorino2012-06-111-14/+36
|
* both string and sumbol will be interpolated as string no need to convert to_sganesh2012-06-111-3/+3
|
* Merge pull request #6588 from nbibler/polymorphic_to_modelJosé Valim2012-06-011-1/+7
| | | | Correct the use of to_model in polymorphic routing
* Include routes.mounted_helpers into integration testsPiotr Sarnacki2012-06-012-3/+6
| | | | | | | | | | | | | | | In integration tests, you might want to use helpers from engines that you mounted in your application. It's not hard to add it by yourself, but it's unneeded boilerplate. mounted_helpers are now included by default. That means that given engine mounted like: mount Foo::Engine => "/foo", :as => "foo" you will be able to use paths from this engine in tests this way: foo.root_path #=> "/foo" (closes #6573)
* Merge branch 'master-sec'Aaron Patterson2012-05-311-0/+22
|\ | | | | | | | | | | * master-sec: Strip [nil] from parameters hash. Thanks to Ben Murphy for reporting this! predicate builder should not recurse for determining where columns. Thanks to Ben Murphy for reporting this
| * Strip [nil] from parameters hash.Aaron Patterson2012-05-301-0/+22
| | | | | | | | | | | | Thanks to Ben Murphy for reporting this! CVE-2012-2660
* | Simplify logic to initialize valid conditions in RouteSetCarlos Antonio da Silva2012-05-311-7/+3
| | | | | | | | | | | | Remove :to_sym call from public_instance_methods iteration, as such methods in Ruby 1.9 already return symbols. Initialize valid conditions with controller/action instead of setting them afterwards.
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-05-261-4/+3
|\ \
| * | references to the old behavior removedMikhail Vaysman2012-05-251-4/+3
| | |
* | | Remove implicit dependency on pathnameJosé Valim2012-05-251-3/+3
|/ /
* / Added ActionDispatch::Request::Session#keys and ↵Philip Arndt2012-05-231-0/+8
|/ | | | ActionDispatch::Request::Session#values
* Fix bug when Rails.application is defined but is nil. See #881Marc-Andre Lafortune2012-05-211-1/+1
|
* Merge pull request #2549 from trek/RoutingErrorForMissingControllersAaron Patterson2012-05-211-3/+7
|\ | | | | When a route references a missing controller, raise ActionController::RoutingError with clearer message
| * When a route references a missing controller, raise ↵Trek Glowacki2011-08-161-3/+7
| | | | | | | | ActionController::RoutingError with a clearer message
* | Return 400 Bad Request for URL paths with invalid encoding.Andrew White2012-05-202-0/+18
| | | | | | | | | | | | | | | | | | Passing path parameters with invalid encoding is likely to trigger errors further on like `ArgumentError (invalid byte sequence in UTF-8)`. This will result in a 500 error whereas the better error to return is a 400 error which allows exception notification libraries to filter it out if they wish. Closes #4450
* | Raise ActionController::BadRequest for malformed parameter hashes.Andrew White2012-05-202-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently Rack raises a TypeError when it encounters a malformed or ambiguous hash like `foo[]=bar&foo[4]=bar`. Rather than pass this through to the application this commit captures the exception and re-raises it using a new ActionController::BadRequest exception. The new ActionController::BadRequest exception returns a 400 error instead of the 500 error that would've been returned by the original TypeError. This allows exception notification libraries to ignore these errors if so desired. Closes #3051
* | Correct order of expected and actual argumentsAndrew White2012-05-201-1/+1
| |
* | Raise Assertion instead of RoutingError for routing assertion failures.David Chelimsky2012-05-201-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, assert_recognizes, assert_generates, and assert_routing raised ActionController::RoutingError when they failed to recognize the route. This commit changes them to raise Assertion instead. This aligns with convention for logical failures, and supports reporting tools that care about the difference between logical failures and errors e.g. the summary at the end of a test run. - Fixes #5899
* | Improve `rake routes` output for redirects - closes #6369.Andrew White2012-05-191-12/+22
| |
* | Fix inspecting route redirections, closes #6369Łukasz Strzałkowski2012-05-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This commit fixes route inspection in `rake routes` Before: foo /foo(.:format) :controller#:action" After: foo /foo(.:format) Redirect (301)
* | Add the #unshift method to the middleware stackRich Healey2012-05-181-0/+5
| | | | | | | | | | | | The docs suggest that the middleware stack is an Array, so I've added the unshift method to it. Originally I added some more Array methods, but it was agreed that they lacked usecases.
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-05-1510-42/+2
|\ \ | | | | | | | | | | | | Conflicts: actionpack/lib/action_view/helpers/asset_tag_helper.rb
| * | Removing ==Examples and last blank lines of docs from actionpackFrancesco Rodriguez2012-05-1510-42/+2
| | |
* | | add tests and external file backtrace for Routing::Mapper#drawKornelius Kalnbach2012-05-151-3/+4
| | |
* | | Autoload ActionDispatch::Request::Session to avoid circular require.Andrew White2012-05-131-1/+2
|/ /
* | Move require to where it's neededSantiago Pastorino2012-05-111-1/+2
| |
* | Copy literal route constraints to defaults - fixes #3571 and #6224.Andrew White2012-05-111-0/+19
| |
* | Don't ignore nil positional arguments for url helpers - fixes #6196.Andrew White2012-05-101-1/+1
| |
* | Refactor the handling of default_url_options in integration testsAndrew White2012-05-101-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | This commit improves the handling of default_url_options in integration tests by making behave closer to how a real application operates. Specifically the following issues have been addressed: * Options specified in routes.rb are used (fixes #546) * Options specified in controllers are used * Request parameters are recalled correctly * Tests can override default_url_options directly
* | Refactor Generator class to not rely on in-place editing the controllerAndrew White2012-05-091-5/+10
| |
* | Fix bug when url_for changes controller.Nikita Beloglazov2012-05-091-2/+2
| |