1. 07 10月, 2009 2 次提交
  2. 04 10月, 2009 1 次提交
  3. 29 9月, 2009 1 次提交
    • E
      Ported the new ActionView::TestCase from 2-3-stable to master [#3260 · 8ffc2e3b
      Erik Ostrom 提交于
      state:resolved]
      
      The test case now mimicks the template environment more closely, so it's
      possible to use render, load helper dependencies.
      
      This also fixes assert_select, and similar assertions. Because view tests
      and helpers generally don't render full templates assert_select looks
      first in rendered and then in output_buffer to find the rendered output.
      
      Additional `master'-only changes: Made the Action Pack Rakefile run the
      ActionView::TestCase tests, and made ActionView::Rendering#_render_text
      always return a string.
      Signed-off-by: NJoshua Peek <josh@joshpeek.com>
      8ffc2e3b
  4. 28 9月, 2009 2 次提交
  5. 25 9月, 2009 2 次提交
  6. 20 9月, 2009 1 次提交
  7. 16 9月, 2009 1 次提交
  8. 14 9月, 2009 3 次提交
  9. 12 9月, 2009 1 次提交
  10. 04 9月, 2009 4 次提交
  11. 02 9月, 2009 1 次提交
  12. 27 8月, 2009 5 次提交
  13. 16 8月, 2009 5 次提交
    • Y
      Fixes ActionMailer regression [#3059 state:resolved] · ccf28d24
      Yehuda Katz 提交于
      ccf28d24
    • Y
      Got tests to pass with some more changes. · 1310231c
      Yehuda Katz 提交于
        * request.formats is much simpler now
          * For XHRs or Accept headers with a single item, we use the Accept header
          * For other requests, we use params[:format] or fallback to HTML
          * This is primarily to work around the fact that browsers provide completely
            broken Accept headers, so we have to whitelist the few cases we can
            specifically isolate and treat other requests as coming from the browser
          * For APIs, we can support single-item Accept headers, which disambiguates
            from the browsers
        * Requests to an action that only has an XML template from the browser will
          no longer find the template. This worked previously because most browsers
          provide a catch-all */*, but this was mostly accidental behavior. If you
          want to serve XML, either use the :xml format in links, or explicitly
          specify the XML template: render "template.xml".
      1310231c
    • Y
      Caches and cache clearing seems to actually work, but the actual architecture... · 9b552fb3
      Yehuda Katz 提交于
      Caches and cache clearing seems to actually work, but the actual architecture is kind of messy. Next: CLEAN UP.
      9b552fb3
    • Y
      More cleanup of ActionView and reduction in need for blocks in some cases: · 9f5cd015
      Yehuda Katz 提交于
        * only one of partial_name or :as will be available as a local
        * `object` is removed
        * Simplify _layout_for in most cases.
          * Remove <% render :partial do |args| %>
          * <% render :partial do %> still works fine
      9f5cd015
    • Y
      Clean up ActionView some: · 27adcd1c
      Yehuda Katz 提交于
        * Call _evaluate_assigns_and_ivars at the two entry points so we don't have to
          do a check at every render.
        * Make template.render viable without having to go through a wrapper method
        * Remove old TemplateHandler#render(template, local_assigns) path so we don't have
          to set self.template every time we render a template.
        * Move Template rescuing code to Template#render so it gets caught every time.
        * Pull in some tests from Pratik that test render @object in ActionView
      27adcd1c
  14. 12 8月, 2009 5 次提交
    • Y
      More perf work: · 4bf516e0
      Yehuda Katz 提交于
        * Move #set_cookie and #delete_cookie inline to optimize. These optimizations should
          almost certainly be sent back upstream to Rack. The optimization involves using
          an ivar for cookies instead of indexing into the headers each time.
        * Was able to use a bare Hash for headers now that cookies have their own joining
          semantics (some code assumed that the raw cookies were an Array).
        * Cache blankness of body on body=
        * Improve expand_cache_key for Arrays of a single element (common in our case)
        * Use a simple layout condition check unless conditions are used
        * Cache visible actions
        * Lazily load the UrlRewriter
        * Make etag an ivar that is set on prepare!
      4bf516e0
    • Y
      9e62d6d1
    • Y
      Further experimentation. Was able to cut the cost of rendering 100 partials in... · 4945d822
      Yehuda Katz 提交于
      Further experimentation. Was able to cut the cost of rendering 100 partials in a collection in half.
      
        To discuss: What are the desired semantics (if any) for layouts in a collection. There are no
        tests for it at present, and I'm not sure if it's needed at all.
      
        Deprecated on this branch: `object` pointing at the current object in partials. You can still
        use the partial name, or use :as to achieve the same thing. This is obviously up for discussion.
      4945d822
    • Y
      Add some more caching to the lookup · 02d9dd90
      Yehuda Katz 提交于
      02d9dd90
    • Y
      This change causes some failing tests, but it should be possible to make them... · 04d4537c
      Yehuda Katz 提交于
      This change causes some failing tests, but it should be possible to make them pass with minimal performance impact.
      04d4537c
  15. 10 8月, 2009 3 次提交
  16. 09 8月, 2009 3 次提交
    • R
    • Y
      Experimental: Improve performance of ActionView by preventing method cache... · e58b2769
      Yehuda Katz 提交于
      Experimental: Improve performance of ActionView by preventing method cache flushing due to runtime Kernel#extend:
      
        * The helper module adds a new _helper_serial property onto AbstractController subclasses
        * When #helper is used to add helpers to a class, the serial number is updated
        * An ActionView subclass is created and cached based on this serial number.
          * That subclass includes the helper module from the controller
          * Subsequent requests using the same controller with the same serial will result in
            reusing that subclass, rather than being forced to take an action (like include
            or extend) that will result in a global method cache flush on MRI and a flush 
            of the entire AV class' cache on JRuby.
        * For now, this optimization is not applied to the RJS helpers, which results in
          a global method cache flush in MRI and a flush of the JavaScriptGenerator class in
          JRuby only when using RJS.
          * Since the effects are limited to using RJS, and would only affect JavaScriptGenerator
            in JRuby (as opposed to the entire view object), it seems worthwhile to apply this
            now.
        * This resulted in a significant performance improvement. I will have benchmarks
          in the next day or two that show the performance impact of the last several
          commits.
        * There is a small chance this could break existing code (although I'm not sure how).
          If that happens, please report it immediately.
      e58b2769
    • Y
      Cache controller_path on the AV instance to avoid needing to make additional... · 10eaba8f
      Yehuda Katz 提交于
      Cache controller_path on the AV instance to avoid needing to make additional calls back into the controller for each attempt (this was done because these calls were adding up significantly in partial rendering and showing up on profiles)
      10eaba8f