diff options
author | Guillermo Iguaran <guilleiguaran@gmail.com> | 2012-09-11 01:08:40 -0500 |
---|---|---|
committer | Guillermo Iguaran <guilleiguaran@gmail.com> | 2012-09-11 01:17:43 -0500 |
commit | ab7ae689e9727781ef39b01a836a746ac75352fc (patch) | |
tree | cd7a5df13571a7c227a8bd9e0be1bfb9043cdabc /actionpack | |
parent | 5d264f229c3798367e445d1ca02f3910ad9db547 (diff) | |
download | rails-ab7ae689e9727781ef39b01a836a746ac75352fc.tar.gz rails-ab7ae689e9727781ef39b01a836a746ac75352fc.tar.bz2 rails-ab7ae689e9727781ef39b01a836a746ac75352fc.zip |
Add .rb template handler
This handler simply allows arbitrary Ruby code as a template
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/CHANGELOG.md | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/handlers.rb | 1 | ||||
-rw-r--r-- | actionpack/test/fixtures/ruby_template.rb | 3 | ||||
-rw-r--r-- | actionpack/test/template/render_test.rb | 8 |
4 files changed, 14 insertions, 0 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 8c7089cf57..36e8479441 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,7 @@ ## Rails 4.0.0 (unreleased) ## +* Add .rb template handler, this handler simply allows arbitrary Ruby code as a template. *Guillermo Iguaran* + * Add `separator` option for `ActionView::Helpers::TextHelper#excerpt`: excerpt('This is a very beautiful morning', 'very', :separator => ' ', :radius => 1) diff --git a/actionpack/lib/action_view/template/handlers.rb b/actionpack/lib/action_view/template/handlers.rb index 41b14373a3..52e032bbd8 100644 --- a/actionpack/lib/action_view/template/handlers.rb +++ b/actionpack/lib/action_view/template/handlers.rb @@ -10,6 +10,7 @@ module ActionView #:nodoc: base.register_default_template_handler :erb, ERB.new base.register_template_handler :builder, Builder.new base.register_template_handler :raw, Raw.new + base.register_template_handler :rb, :source.to_proc end @@template_handlers = {} diff --git a/actionpack/test/fixtures/ruby_template.rb b/actionpack/test/fixtures/ruby_template.rb new file mode 100644 index 0000000000..d99833a24d --- /dev/null +++ b/actionpack/test/fixtures/ruby_template.rb @@ -0,0 +1,3 @@ +body = "" +body << ["Hello", "from", "Ruby", "code"].join(" ") +body diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index b26354e7cc..6279abaae5 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -97,6 +97,14 @@ module RenderTestCases assert_equal %q;Here are some characters: !@#$%^&*()-="'}{`; + "\n", @view.render(:template => "plain_text_with_characters") end + def test_render_rb_template_with_handlers + assert_equal "Hello from Ruby code", @view.render(:template => "ruby_template") + end + + def test_render_rb_template_inline + assert_equal '4', @view.render(:inline => "(2**2).to_s", :type => :rb) + end + def test_render_file_with_localization_on_context_level old_locale, @view.locale = @view.locale, :da assert_equal "Hey verden", @view.render(:file => "test/hello_world") |