1. 12 12月, 2013 3 次提交
  2. 10 12月, 2013 2 次提交
    • Ł
      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
    • Ł
      Simplify @responses hash initialization · fbb6be50
      Łukasz Strzałkowski 提交于
      @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.
      fbb6be50
  3. 09 12月, 2013 3 次提交
    • D
      Revert "Merge pull request #13235 from strzalek/variants-inline" -- needs a little more work! · 4aae538d
      David Heinemeier Hansson 提交于
      This reverts commit 18616114, reversing
      changes made to cad9eb17.
      4aae538d
    • Ł
      Inline variants syntax · 2647d2f6
      Ł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 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
      2647d2f6
    • Ł
      Simplify @responses hash initialization · 9b8c0ff3
      Łukasz Strzałkowski 提交于
      @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.
      9b8c0ff3
  4. 08 12月, 2013 3 次提交
  5. 05 12月, 2013 1 次提交
  6. 04 12月, 2013 3 次提交
    • C
      Improve a couple exception messages related to variants and mime types · 3b40a5d8
      Carlos Antonio da Silva 提交于
      Avoid one-liner conditionals when they are too big. Avoid concatenating
      strings to build error messages. Improve messages a bit.
      3b40a5d8
    • C
      Add nodoc to added VariantFilter class · bc26f442
      Carlos Antonio da Silva 提交于
      bc26f442
    • Ł
      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
  7. 03 12月, 2013 2 次提交
  8. 01 12月, 2013 1 次提交
  9. 15 11月, 2013 2 次提交
  10. 14 11月, 2013 1 次提交
  11. 11 11月, 2013 1 次提交
  12. 07 11月, 2013 1 次提交
  13. 03 11月, 2013 2 次提交
  14. 01 11月, 2013 1 次提交
  15. 27 10月, 2013 1 次提交
  16. 24 10月, 2013 1 次提交
  17. 09 10月, 2013 2 次提交
  18. 27 9月, 2013 1 次提交
  19. 26 9月, 2013 1 次提交
  20. 19 9月, 2013 3 次提交
    • D
      Fix regex used to find URI schemes in redirect_to · a78c10d3
      Derek Prior 提交于
      The previous regex was allowing `_` in the URI scheme, which is not
      allowed by RFC 3986. This change brings the regex in line with the RFC.
      a78c10d3
    • D
      Fix incorrect assert_redirected_to failure message · 1dacfbab
      Derek Prior 提交于
      In some instances, `assert_redirected_to` assertion was returning an
      incorrect and misleading failure message when the assertion failed.
      This was due to a disconnect in how the assertion computes the redirect
      string for the failure message and how `redirect_to` computes the
      string that is actually used for redirection.
      
      I made the `_compute_redirect_to_loaction` method used by `redirect_to`
      public and call that from the method `assert_redirect_to` uses to
      calculate the URL.
      
      The reveals a new test failure due to the regex used by
      `_compute_redirect_to_location` allow `_` in the URL scheme.
      1dacfbab
    • J
      NullSessionHash#destroy should be a no-op · 0f3124dd
      Jonathan Baudanza 提交于
      Previously it was raising a NilException
      0f3124dd
  21. 14 9月, 2013 2 次提交
  22. 13 9月, 2013 1 次提交
  23. 09 9月, 2013 2 次提交