aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Merge pull request #13284 from aayushkhandelwal11/typos_correctedGodfrey Chan2013-12-111-1/+1
| |\ \ \ \ | | |/ / / | |/| | | s/everytime/every time/
| | * | | typos rectified [ci skip]Aayush khandelwal2013-12-121-1/+1
| | | | |
| * | | | Update CHANGELOG entry for Session#fetchTrent Ogren2013-12-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts the changes to CHANGELOG.md in commit 38f8872aa5fd8f0a1d0895e9eb41f73261acd040.
| * | | | Make ActionDispatch::Request::Session#fetch behave like Hash#fetchTrent Ogren2013-12-112-11/+10
| |/ / / | | | | | | | | | | | | | | | | | | | | Session#fetch was mutating the session when given a default argument and/or a block. Since Session duck-types as a Hash, it should behave like one in these cases.
| * | | Fix mounting engines inside a resources blockPiotr Sarnacki2013-12-103-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a route is mounted inside a resources block, it's automatically prefixed, so a following code: resources :users do mount Blog::Engine => '/blog' end will generate a user_blog path helper. In order to access engine helpers, we also use "mounted_helpers", a list of helpers associated with each mounted engine, so a path to blog's post can be generated using user_blog.post_path(user, post). The problem I'm fixing here is that mount used a raw :as option, without taking nestings into account. As a result, blog was added to a route set as a `user_blog`, but helper was generated for just `blog`. This commit applies the proper logic for defining a helper for a mounted engine nested in resources or resource block. (closes #8533)
| * | | Inline variants syntaxŁukasz Strzałkowski2013-12-103-3/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In most cases, when setting variant specific code, you're not sharing any code within format. Inline syntax can vastly simplify defining variants in those situations: respond_to do |format| format.js { render "trash" } format.html do |variant| variant.phone { redirect_to progress_path } variant.none { render "trash" } end end Becomes: respond_to do |format| format.js { render "trash" } format.html.phone { redirect_to progress_path } format.html.none { render "trash" } end
| * | | Simplify @responses hash initializationŁukasz Strzałkowski2013-12-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | @responses hash needs to be initialized with mime types that we get from Collector#collect_mimes_from_class_level. Mime::Type class as key and nil as value. This need to happen before content negotiation. Before that, it was looping though mime types and executing mime-type-generated method inside collector (see AbstractController::Collector#generate_method_for_mime). That approach resulted in 2 unnecessary method calls for each mime type collected by Collector#collect_mimes_from_class_level. Now hash is initialized in place, without usage of Collector#custom method.
| * | | Revert "Merge pull request #13235 from strzalek/variants-inline" -- needs a ↵David Heinemeier Hansson2013-12-082-28/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | little more work! This reverts commit 186161148a189839a1e0924043f068a8d155ce69, reversing changes made to cad9eb178ea5eec0e27d74e93518f4ed34e2f997.
| * | | Merge pull request #13235 from strzalek/variants-inlineDavid Heinemeier Hansson2013-12-082-10/+28
| |\ \ \ | | | | | | | | | | Inline syntax for variants
| | * | | Inline variants syntaxŁukasz Strzałkowski2013-12-082-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In most cases, when setting variant specific code, you're not sharing any code within format. Inline syntax can vastly simplify defining variants in those sitiations: respond_to do |format| format.js { render "trash" } format.html do |variant| variant.phone { redirect_to progress_path } variant.none { render "trash" } end end ` Becomes: respond_to do |format| format.js { render "trash" } format.html.phone { redirect_to progress_path } format.html.none { render "trash" } end
| | * | | Simplify @responses hash initializationŁukasz Strzałkowski2013-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | @responses hash needs to be initialized with mime types that we get from Collector#collect_mimes_from_class_level. Mime::Type class as key and nil as value. This need to happen before content negotiation. Before that, it was looping though mime types and executing mime-type-generated method inside collector (see AbstractController::Collector#generate_method_for_mime). That approach resulted in 2 unnecessary method calls for each mime type collected by Collector#collect_mimes_from_class_level. Now hash is initialized in place, without usage of Collector#custom method.
| * | | | Require action_view explicitly in AC::BaseŁukasz Strzałkowski2013-12-082-0/+2
| |/ / /
| * | | Variants can be declared without a block to signify their presence in the ↵David Heinemeier Hansson2013-12-073-2/+5
| | | | | | | | | | | | | | | | controller
| * | | Allow code execution in case no variant has been set with variant.noneDavid Heinemeier Hansson2013-12-072-4/+21
| | | |
| * | | Fixed test for Mime::VCFArun Agrawal2013-12-061-3/+3
| | | | | | | | | | | | | | | | Added here 13dd38cee79be39f7b399e142fd78295dddd2abb
| * | | Add Mime::Type.register "text/vcard", :vcf to the default list of mime typesDavid Heinemeier Hansson2013-12-052-0/+5
| | | |
| * | | Merge pull request #13189 from strzalek/retain-ap-av-depJeremy Kemper2013-12-055-19/+6
| |\ \ \ | | | | | | | | | | Retain ActionPack dependency on ActionView. Fixes #12979.
| | * | | Remove missing integration points of AV extractionCarlos Antonio da Silva2013-12-052-3/+1
| | | | |
| | * | | Retain ActionPack dependency on ActionViewŁukasz Strzałkowski2013-12-053-16/+5
| | | | |
| * | | | add missing CHANGELOG entry for d8c6f52. [ci skip]Yves Senn2013-12-051-0/+5
| | | | | | | | | | | | | | | | | | | | Discoverd by #13175.
| * | | | Escalate missing error when :raise is trueShota Fukumori (sora_h)2013-12-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before ec16ba75a5493b9da972eea08bae630eba35b62f, ActionView::Helpers::TranslationHelper#translate has raised errors with specifying options[:raise] to true. This should work by this fix: begin t(:"translations.missing", raise: true) rescue I18n::MissingTranslationData p :hello! end
| * | | | Update changelog [ci skip]Rafael Mendonça França2013-12-041-2/+2
| | | | |
| * | | | remove nil in NullType#ref.Angelo capilleri2013-12-041-3/+1
| | |_|/ | |/| | | | | | | | | | | | | | Return Nil is implicit in a method and this syntax is used in the others classes
| * | | Improve a couple exception messages related to variants and mime typesCarlos Antonio da Silva2013-12-033-15/+19
| | | | | | | | | | | | | | | | | | | | Avoid one-liner conditionals when they are too big. Avoid concatenating strings to build error messages. Improve messages a bit.
| * | | Add nodoc to added VariantFilter classCarlos Antonio da Silva2013-12-031-3/+3
| |/ /
| * | Action Pack VariantsŁukasz Strzałkowski2013-12-049-6/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, variants in the templates will be picked up if a variant is set and there's a match. The format will be: app/views/projects/show.html.erb app/views/projects/show.html+tablet.erb app/views/projects/show.html+phone.erb If request.variant = :tablet is set, we'll automatically be rendering the html+tablet template. In the controller, we can also tailer to the variants with this syntax: class ProjectsController < ActionController::Base def show respond_to do |format| format.html do |html| @stars = @project.stars html.tablet { @notifications = @project.notifications } html.phone { @chat_heads = @project.chat_heads } end format.js format.atom end end end The variant itself is nil by default, but can be set in before filters, like so: class ApplicationController < ActionController::Base before_action do if request.user_agent =~ /iPad/ request.variant = :tablet end end end This is modeled loosely on custom mime types, but it's specifically not intended to be used together. If you're going to make a custom mime type, you don't need a variant. Variants are for variations on a single mime types.
| * | Change deep_munge call to avoid deprecation warningCarlos Antonio da Silva2013-12-031-2/+2
| | |
| * | Merge branch 'master-sec'Aaron Patterson2013-12-032-2/+17
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master-sec: Deep Munge the parameters for GET and POST Stop using i18n's built in HTML error handling. Ensure simple_format escapes its html attributes Escape the unit value provided to number_to_currency Only use valid mime type symbols as cache keys
| | * | Deep Munge the parameters for GET and POSTMichael Koziarski2013-12-022-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation of this functionality could be accidentally subverted by instantiating a raw Rack::Request before the first Rails::Request was constructed. Fixes CVE-2013-6417
| * | | Changelog improvements [ci skip]Carlos Antonio da Silva2013-12-031-5/+5
| | | |
| * | | Convert Mime::NullType in a singletonGuillermo Iguaran2013-12-031-1/+4
| | | |
| * | | Cleanups in comment about conditionalGuillermo Iguaran2013-12-031-1/+2
| | | |
| * | | Merge branch 'format_localized_template' of https://github.com/acapilleri/railsGuillermo Iguaran2013-12-034-1/+22
| |\ \ \ | | |/ / | |/| | | | | | | | | | Conflicts: actionpack/CHANGELOG.md
| | * | Fix header Content-Type: #<Mime::NullType:...> in localized templateAngelo capilleri2013-12-034-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR fixes #13064 regression bug introduced by the #8085 Now in _process_format when the format is a Mime::NullType nothing is written in self.content_type. In this way the method Response#assign_default_content_type_and_charset can write the the default mime_type.
| * | | Merge pull request #12123 from aredondo/masterCarlos Antonio da Silva2013-12-021-0/+8
| |\ \ \ | | | | | | | | | | | | | | | | | | | | Add regression test for IpSpoofAttackError issue Closes #10780
| | * | | Add regression test for IpSpoofAttackError issueAlvaro Redondo2013-09-031-0/+8
| | | | | | | | | | | | | | | | | | | | See #10780
| * | | | Remove deprecated cattr_* requiresGenadi Samokovarov2013-12-034-4/+4
| | | | |
| * | | | Try to escape each part of a path redirect route correctlyAndrew White2013-12-023-8/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A path redirect may contain any and all parts of a url which have different escaping rules for each part. This commit tries to escape each part correctly by splitting the string into three chunks - path (which may also include a host), query and fragment; then it applies the correct escape pattern to each part. Whilst using `URI.parse` would be better, unfortunately the possible presence of %{name} parameters in the path redirect string prevents us from using it so we have to use a regular expression instead. Fixes #13110.
| * | | | [ci skip] Removing some gender sensitive object pronounsTejas Dinkar2013-12-021-2/+2
| | | | |
| * | | | Use genderless pronouns in API docsGuillermo Iguaran2013-12-011-1/+1
| | | | |
* | | | | Fix stream closing when sending file with `ActionController::Live` included.Lauro Caetano2013-11-303-1/+21
|/ / / / | | | | | | | | | | | | Fixes #12381
* | | | Typo fixes [ci skip]Akshay Vishnoi2013-11-301-2/+2
| | | |
* | | | first pass through CHANGELOGS to extract 4_1_release_notes. [ci skip]Yves Senn2013-11-281-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract **notable changes**, **deprecations** and **removals** from each CHANGELOG. I tried to reference the commits and pull requests for new features and deprecations. In the process I also made some minor changes to the CHANGELOGS. The 4_1_release_notes guide is declared WIP.
* | | | fixed-case when invalid action name has passedKuldeep Aggarwal2013-11-281-0/+3
| | | |
* | | | fixed typo `destory` => `destroy` [ci skip]Kuldeep Aggarwal2013-11-281-1/+1
| |/ / |/| |
* | | Better error message for typos in assert_response argument.Victor Costan2013-11-253-0/+19
| | | | | | | | | | | | | | | This commit makes it really easy to debug errors due to typos like "assert_response :succezz".
* | | Merge pull request #13020 from razielgn/raise-inspectable-messagesCarlos Antonio da Silva2013-11-242-4/+4
|\ \ \ | |_|/ |/| | Raise RuntimeErrors with inspectable and MRI-independent messages.
| * | Raise RuntimeErrors with inspectable and MRI-independent messages.Federico Ravasio2013-11-242-4/+4
| | | | | | | | | | | | | | | | | | Previous behaviour was MRI-dependent, now we're making sure the message is correctly shown: something that can be relyied upon across every Ruby implementation.
* | | Merge remote-tracking branch 'docrails/master'Xavier Noria2013-11-241-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | Conflicts: activesupport/lib/active_support/core_ext/hash/deep_merge.rb activesupport/lib/active_support/core_ext/hash/keys.rb
| * | Change syntax format for example returned valuesPrem Sichanugrist2013-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | According to our guideline, we leave 1 space between `#` and `=>`, so we want `# =>` instead of `#=>`. Thanks to @fxn for the suggestion. [ci skip]