1. 18 7月, 2015 1 次提交
    • P
      Stop using deprecated `render :text` in test · 8cb8ce98
      Prem Sichanugrist 提交于
      This will silence deprecation warnings.
      
      Most of the test can be changed from `render :text` to render `:plain`
      or `render :body` right away. However, there are some tests that needed
      to be fixed by hand as they actually assert the default Content-Type
      returned from `render :body`.
      8cb8ce98
  2. 08 7月, 2015 1 次提交
    • A
      pass variants in rather than mutating the request. · 59a9068c
      Aaron Patterson 提交于
      Variants are typically set in the controller based on some attribute of
      the request that the browser sent.  We should make our tests more in
      line with reality by doing the same and not mutating the request object.
      59a9068c
  3. 21 6月, 2015 1 次提交
    • D
      Override default_render's behavior with a block · 6fda6c37
      Dave Copeland 提交于
      In 0de4a23d the behavior when there is a missing template was changed to
      not raise an error, but instead head :no_content.  This is a breaking
      change and some gems rely on this happening.
      
      To allow gems and other code to work around this, allow
      `default_render` to take a block which, if provided, will
      execute the contents of that block instead of doing the `head :no_content`.
      6fda6c37
  4. 06 4月, 2015 2 次提交
  5. 01 2月, 2015 1 次提交
  6. 29 1月, 2015 1 次提交
  7. 30 10月, 2014 1 次提交
  8. 10 7月, 2014 1 次提交
  9. 03 7月, 2014 1 次提交
  10. 04 5月, 2014 1 次提交
  11. 15 4月, 2014 1 次提交
    • R
      Return null type format when format is not know · 4d21e496
      Rafael Mendonça França 提交于
      When requesting a controller with the following code with a unknown format:
      
          def my_action
            respond_to do |format|
              format.json { head :ok }
              format.any { render text: 'Default response' }
            end
          end
      
      we should render the default response instead of raising ActionController::UnknownFormat
      
      Fixes #14462
      
      Conflicts:
      	actionpack/CHANGELOG.md
      	actionpack/test/controller/mime/respond_with_test.rb
      
      Conflicts:
      	actionpack/CHANGELOG.md
      4d21e496
  12. 14 2月, 2014 1 次提交
  13. 13 2月, 2014 1 次提交
    • L
      Variant negotiation · f9b6b865
      Lukasz Strzalkowski 提交于
      Allow setting `request.variant` as an array - an order in which they will be
      rendered.
      
      For example:
      
        request.variant = [:tablet, :phone]
      
        respond_to do |format|
          format.html.none
          format.html.phone # this gets rendered
        end
      f9b6b865
  14. 27 12月, 2013 1 次提交
    • Ł
      Add any/all support for variants · a288cc1e
      Łukasz Strzałkowski 提交于
      Like `format.any`, you can do the same with variants.
      
      It works for both inline:
      
          respond_to do |format|
            format.html.any   { render text: "any"   }
            format.html.phone { render text: "phone" }
          end
      
      and block syntax:
      
          respond_to do |format|
            format.html do |variant|
              variant.any(:tablet, :phablet){ render text: "any" }
              variant.phone { render text: "phone" }
            end
          end
      a288cc1e
  15. 10 12月, 2013 1 次提交
    • Ł
      Inline variants syntax · edacdbfa
      Łukasz Strzałkowski 提交于
      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
      edacdbfa
  16. 09 12月, 2013 2 次提交
  17. 08 12月, 2013 2 次提交
  18. 04 12月, 2013 1 次提交
    • Ł
      Action Pack Variants · 2d3a6a0c
      Łukasz Strzałkowski 提交于
      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.
      2d3a6a0c
  19. 18 8月, 2013 1 次提交