aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-06-05 17:34:14 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2008-06-05 17:34:14 -0700
commit9c9da5d927a1401bde9e96879c6117fb22210a09 (patch)
tree435d778caaa95416c5f90e3f38efbce47fd8df6c /actionpack
parente7f1556d0e75c635212273cc5e3cfd113456ff29 (diff)
parent1dbfe9766e00282c56523f6969550494bbffbbf4 (diff)
downloadrails-9c9da5d927a1401bde9e96879c6117fb22210a09.tar.gz
rails-9c9da5d927a1401bde9e96879c6117fb22210a09.tar.bz2
rails-9c9da5d927a1401bde9e96879c6117fb22210a09.zip
Merge branch 'master' into erbout
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/base.rb3
-rw-r--r--actionpack/lib/action_view/partial_template.rb2
-rw-r--r--actionpack/test/controller/new_render_test.rb14
-rw-r--r--actionpack/test/fixtures/test/render_file_from_template.html.erb1
4 files changed, 16 insertions, 4 deletions
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index ad114acc6c..eeebf335dc 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -252,6 +252,7 @@ If you are rendering a subtemplate, you must now use controller-like partial syn
elsif options == :update
update_page(&block)
elsif options.is_a?(Hash)
+ use_full_path = options[:use_full_path]
options = options.reverse_merge(:locals => {}, :use_full_path => true)
if partial_layout = options.delete(:layout)
@@ -265,7 +266,7 @@ If you are rendering a subtemplate, you must now use controller-like partial syn
end
end
elsif options[:file]
- render_file(options[:file], options[:use_full_path], options[:locals])
+ render_file(options[:file], use_full_path || false, options[:locals])
elsif options[:partial] && options[:collection]
render_partial_collection(options[:partial], options[:collection], options[:spacer_template], options[:locals])
elsif options[:partial]
diff --git a/actionpack/lib/action_view/partial_template.rb b/actionpack/lib/action_view/partial_template.rb
index 1fb3aaee02..0b374db888 100644
--- a/actionpack/lib/action_view/partial_template.rb
+++ b/actionpack/lib/action_view/partial_template.rb
@@ -22,10 +22,10 @@ module ActionView #:nodoc:
end
def render_member(object)
- @locals[@counter_name] += 1
@locals[:object] = @locals[@variable_name] = object
template = render_template
+ @locals[@counter_name] += 1
@locals.delete(@variable_name)
@locals.delete(:object)
diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb
index 6e2c6d90c6..6b83b8337e 100644
--- a/actionpack/test/controller/new_render_test.rb
+++ b/actionpack/test/controller/new_render_test.rb
@@ -68,6 +68,11 @@ class NewRenderTestController < ActionController::Base
path = File.join(File.dirname(__FILE__), '../fixtures/test/render_file_with_ivar.erb')
render :file => path
end
+
+ def render_file_from_template
+ @secret = 'in the sauce'
+ @path = File.expand_path(File.join(File.dirname(__FILE__), '../fixtures/test/render_file_with_ivar.erb'))
+ end
def render_file_with_locals
path = File.join(File.dirname(__FILE__), '../fixtures/test/render_file_with_locals.erb')
@@ -531,6 +536,11 @@ class NewRenderTest < Test::Unit::TestCase
get :render_file_with_locals
assert_equal "The secret is in the sauce\n", @response.body
end
+
+ def test_render_file_from_template
+ get :render_file_from_template
+ assert_equal "The secret is in the sauce\n", @response.body
+ end
def test_attempt_to_access_object_method
assert_raises(ActionController::UnknownAction, "No action responded to [clone]") { get :clone }
@@ -742,7 +752,7 @@ EOS
def test_partial_collection_with_counter
get :partial_collection_with_counter
- assert_equal "david1mary2", @response.body
+ assert_equal "david0mary1", @response.body
end
def test_partial_collection_with_locals
@@ -762,7 +772,7 @@ EOS
def test_partial_collection_shorthand_with_different_types_of_records
get :partial_collection_shorthand_with_different_types_of_records
- assert_equal "Bonjour bad customer: mark1Bonjour good customer: craig2Bonjour bad customer: john3Bonjour good customer: zach4Bonjour good customer: brandon5Bonjour bad customer: dan6", @response.body
+ assert_equal "Bonjour bad customer: mark0Bonjour good customer: craig1Bonjour bad customer: john2Bonjour good customer: zach3Bonjour good customer: brandon4Bonjour bad customer: dan5", @response.body
end
def test_empty_partial_collection
diff --git a/actionpack/test/fixtures/test/render_file_from_template.html.erb b/actionpack/test/fixtures/test/render_file_from_template.html.erb
new file mode 100644
index 0000000000..fde9f4bb64
--- /dev/null
+++ b/actionpack/test/fixtures/test/render_file_from_template.html.erb
@@ -0,0 +1 @@
+<%= render :file => @path %> \ No newline at end of file