aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-01-23 07:57:30 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-01-23 08:09:32 -0200
commit930245ef12fbbb0628c332d36bf09a33050d5b65 (patch)
tree65108613c06a978169ef0a222473ab9606203627 /actionpack
parentfcfe1fa87813bf85697c7a0db519e8ed9a483fc6 (diff)
downloadrails-930245ef12fbbb0628c332d36bf09a33050d5b65.tar.gz
rails-930245ef12fbbb0628c332d36bf09a33050d5b65.tar.bz2
rails-930245ef12fbbb0628c332d36bf09a33050d5b65.zip
Raise a better error if anyone wants to create your own ActionView::Helpers::Tags::Base child and do not implement the render method
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/helpers/tags/base.rb5
-rw-r--r--actionpack/test/template/form_helper_test.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/helpers/tags/base.rb b/actionpack/lib/action_view/helpers/tags/base.rb
index 24956beb9c..449f94d347 100644
--- a/actionpack/lib/action_view/helpers/tags/base.rb
+++ b/actionpack/lib/action_view/helpers/tags/base.rb
@@ -19,8 +19,9 @@ module ActionView
@auto_index = retrieve_autoindex(Regexp.last_match.pre_match) if Regexp.last_match
end
- def render(&block)
- raise "Abstract Method called"
+ # This is what child classes implement.
+ def render
+ raise NotImplementedError, "Subclasses must implement a render method"
end
private
diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb
index 5be6a2e4e5..39d4768861 100644
--- a/actionpack/test/template/form_helper_test.rb
+++ b/actionpack/test/template/form_helper_test.rb
@@ -115,6 +115,14 @@ class FormHelperTest < ActionView::TestCase
super
end
+ class FooTag < ActionView::Helpers::Tags::Base
+ def initialize; end
+ end
+
+ def test_tags_base_child_without_render_method
+ assert_raise(NotImplementedError) { FooTag.new.render }
+ end
+
def test_label
assert_dom_equal('<label for="post_title">Title</label>', label("post", "title"))
assert_dom_equal('<label for="post_title">The title goes here</label>', label("post", "title", "The title goes here"))