From d6bd606bddf8c385508aa4ee699bdd5f6eab635a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@gmail.com>
Date: Fri, 15 Apr 2011 21:11:54 +0200
Subject: render :once, YAGNI.

---
 actionpack/lib/abstract_controller/rendering.rb    |  2 +-
 .../lib/action_view/renderer/template_renderer.rb  | 25 -------
 actionpack/lib/action_view/rendering.rb            |  7 --
 .../test/controller/new_base/render_once_test.rb   | 86 ----------------------
 4 files changed, 1 insertion(+), 119 deletions(-)
 delete mode 100644 actionpack/test/controller/new_base/render_once_test.rb

(limited to 'actionpack')

diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb
index ecd0c4fb73..66f6d0eebb 100644
--- a/actionpack/lib/abstract_controller/rendering.rb
+++ b/actionpack/lib/abstract_controller/rendering.rb
@@ -174,7 +174,7 @@ module AbstractController
         options[:partial] = action_name
       end
 
-      if (options.keys & [:partial, :file, :template, :once]).empty?
+      if (options.keys & [:partial, :file, :template]).empty?
         options[:prefixes] ||= _prefixes
       end
 
diff --git a/actionpack/lib/action_view/renderer/template_renderer.rb b/actionpack/lib/action_view/renderer/template_renderer.rb
index 9ae1636131..439a661dd3 100644
--- a/actionpack/lib/action_view/renderer/template_renderer.rb
+++ b/actionpack/lib/action_view/renderer/template_renderer.rb
@@ -1,17 +1,9 @@
-require 'set'
 require 'active_support/core_ext/object/try'
 require 'active_support/core_ext/array/wrap'
 require 'action_view/renderer/abstract_renderer'
 
 module ActionView
   class TemplateRenderer < AbstractRenderer #:nodoc:
-    attr_reader :rendered
-
-    def initialize(view)
-      super
-      @rendered = Set.new
-    end
-
     def render(options)
       wrap_formats(options[:template] || options[:file]) do
         template = determine_template(options)
@@ -19,23 +11,6 @@ module ActionView
       end
     end
 
-    def render_once(options)
-      paths, locals = options[:once], options[:locals] || {}
-      layout, keys  = options[:layout], locals.keys
-      prefixes = options.fetch(:prefixes, @view.controller_prefixes)
-
-      raise "render :once expects a String or an Array to be given" unless paths
-
-      render_with_layout(layout, locals) do
-        contents = []
-        Array.wrap(paths).each do |path|
-          template = find_template(path, prefixes, false, keys)
-          contents << render_template(template, nil, locals) if @rendered.add?(template)
-        end
-        contents.join("\n")
-      end
-    end
-
     # Determine the template to be rendered using the given options.
     def determine_template(options) #:nodoc:
       keys = options[:locals].try(:keys) || []
diff --git a/actionpack/lib/action_view/rendering.rb b/actionpack/lib/action_view/rendering.rb
index 2b488fa845..30c083a2bf 100644
--- a/actionpack/lib/action_view/rendering.rb
+++ b/actionpack/lib/action_view/rendering.rb
@@ -9,7 +9,6 @@ module ActionView
     # * <tt>:file</tt> - Renders an explicit template file (this used to be the old default), add :locals to pass in those.
     # * <tt>:inline</tt> - Renders an inline template similar to how it's done in the controller.
     # * <tt>:text</tt> - Renders the text passed in out.
-    # * <tt>:once</tt> - Accepts a string or an array of strings and Rails will ensure they each of them are rendered just once.
     #
     # If no options hash is passed or :update specified, the default is to render a partial and use the second parameter
     # as the locals hash.
@@ -20,8 +19,6 @@ module ActionView
           _render_partial(options.merge(:partial => options[:layout]), &block)
         elsif options.key?(:partial)
           _render_partial(options)
-        elsif options.key?(:once)
-          _render_once(options)
         else
           _render_template(options)
         end
@@ -88,10 +85,6 @@ module ActionView
       end
     end
 
-    def _render_once(options) #:nodoc:
-      _template_renderer.render_once(options)
-    end
-
     def _render_template(options) #:nodoc:
       _template_renderer.render(options)
     end
diff --git a/actionpack/test/controller/new_base/render_once_test.rb b/actionpack/test/controller/new_base/render_once_test.rb
deleted file mode 100644
index 175abf8a7e..0000000000
--- a/actionpack/test/controller/new_base/render_once_test.rb
+++ /dev/null
@@ -1,86 +0,0 @@
-require 'abstract_unit'
-
-module RenderTemplate
-  class RenderOnceController < ActionController::Base
-    layout false
-
-    RESOLVER = ActionView::FixtureResolver.new(
-      "test/a.html.erb"       => "a",
-      "test/b.html.erb"       => "<>",
-      "test/c.html.erb"       => "c",
-      "test/one.html.erb"     => "<%= render :once => 'result' %>",
-      "test/two.html.erb"     => "<%= render :once => 'result' %>",
-      "test/three.html.erb"   => "<%= render :once => 'result' %>",
-      "test/result.html.erb"  => "YES!",
-      "other/result.html.erb" => "NO!",
-      "layouts/test.html.erb" => "l<%= yield %>l"
-    )
-
-    self.view_paths = [RESOLVER]
-
-    def _prefixes
-      %w(test)
-    end
-
-    def multiple
-      render :once => %w(a b c)
-    end
-
-    def once
-      render :once => %w(one two three)
-    end
-
-    def duplicate
-      render :once => %w(a a a)
-    end
-
-    def with_layout
-      render :once => %w(a b c), :layout => "test"
-    end
-
-    def with_prefix
-      render :once => "result", :prefixes => %w(other)
-    end
-
-    def with_nil_prefix
-      render :once => "test/result", :prefixes => []
-    end
-  end
-
-  module Tests
-    def test_mutliple_arguments_get_all_rendered
-      get :multiple
-      assert_response "a\n<>\nc"
-    end
-
-    def test_referenced_templates_get_rendered_once
-      get :once
-      assert_response "YES!\n\n"
-    end
-
-    def test_duplicated_templates_get_rendered_once
-      get :duplicate
-      assert_response "a"
-    end
-
-    def test_layout_wraps_all_rendered_templates
-      get :with_layout
-      assert_response "la\n<>\ncl"
-    end
-
-    def test_with_prefix_option
-      get :with_prefix
-      assert_response "NO!"
-    end
-
-    def test_with_nil_prefix_option
-      get :with_nil_prefix
-      assert_response "YES!"
-    end
-  end
-
-  class TestRenderOnce < Rack::TestCase
-    testing RenderTemplate::RenderOnceController
-    include Tests
-  end
-end
-- 
cgit v1.2.3