diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-03-14 00:18:12 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-03-14 00:18:12 +0000 |
commit | 9790233dfda048f80bf5bb4ffe8b89c04723c9aa (patch) | |
tree | 715893b1fa39629e5ad710e65e55814d70dc3ce0 /actionpack | |
parent | 7edb10fe682d5fa9802b2b5355b1073444042fc4 (diff) | |
download | rails-9790233dfda048f80bf5bb4ffe8b89c04723c9aa.tar.gz rails-9790233dfda048f80bf5bb4ffe8b89c04723c9aa.tar.bz2 rails-9790233dfda048f80bf5bb4ffe8b89c04723c9aa.zip |
Moved image_tag to AssetTagHelper
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@899 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/asset_tag_helper.rb | 25 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/tag_helper.rb | 26 | ||||
-rw-r--r-- | actionpack/test/template/asset_tag_helper_test.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/tag_helper_test.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/url_helper_test.rb | 2 |
5 files changed, 31 insertions, 30 deletions
diff --git a/actionpack/lib/action_view/helpers/asset_tag_helper.rb b/actionpack/lib/action_view/helpers/asset_tag_helper.rb index 2f3bd71d5a..6328ff6f71 100644 --- a/actionpack/lib/action_view/helpers/asset_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/asset_tag_helper.rb @@ -54,6 +54,31 @@ module ActionView tag("link", "rel" => "Stylesheet", "type" => "text/css", "media" => "screen", "href" => source) }.join("\n") end + + # Returns an image tag converting the +options+ instead html options on the tag, but with these special cases: + # + # * <tt>:alt</tt> - If no alt text is given, the file name part of the +src+ is used (capitalized and without the extension) + # * <tt>:size</tt> - Supplied as "XxY", so "30x45" becomes width="30" and height="45" + # + # The +src+ can be supplied as a... + # * full path, like "/my_images/image.gif" + # * file name, like "rss.gif", that gets expanded to "/images/rss.gif" + # * file name without extension, like "logo", that gets expanded to "/images/logo.png" + def image_tag(src, options = {}) + options.symbolize_keys + + options.update({ :src => src.include?("/") ? src : "/images/#{src}" }) + options[:src] += ".png" unless options[:src].include?(".") + + options[:alt] ||= src.split("/").last.split(".").first.capitalize + + if options[:size] + options[:width], options[:height] = options[:size].split("x") + options.delete :size + end + + tag("img", options) + end end end end diff --git a/actionpack/lib/action_view/helpers/tag_helper.rb b/actionpack/lib/action_view/helpers/tag_helper.rb index eb8af0c098..895a44eab5 100644 --- a/actionpack/lib/action_view/helpers/tag_helper.rb +++ b/actionpack/lib/action_view/helpers/tag_helper.rb @@ -22,32 +22,6 @@ module ActionView "<#{name}#{tag_options(options)}>#{content}</#{name}>" end - - # Returns an image tag converting the +options+ instead html options on the tag, but with these special cases: - # - # * <tt>:alt</tt> - If no alt text is given, the file name part of the +src+ is used (capitalized and without the extension) - # * <tt>:size</tt> - Supplied as "XxY", so "30x45" becomes width="30" and height="45" - # - # The +src+ can be supplied as a... - # * full path, like "/my_images/image.gif" - # * file name, like "rss.gif", that gets expanded to "/images/rss.gif" - # * file name without extension, like "logo", that gets expanded to "/images/logo.png" - def image_tag(src, options = {}) - options.symbolize_keys - - options.update({ :src => src.include?("/") ? src : "/images/#{src}" }) - options[:src] += ".png" unless options[:src].include?(".") - - options[:alt] ||= src.split("/").last.split(".").first.capitalize - - if options[:size] - options[:width], options[:height] = options[:size].split("x") - options.delete :size - end - - tag("img", options) - end - private def tag_options(options) unless options.empty? diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb index d93d0967e0..896d843165 100644 --- a/actionpack/test/template/asset_tag_helper_test.rb +++ b/actionpack/test/template/asset_tag_helper_test.rb @@ -42,4 +42,8 @@ class AssetTagHelperTest < Test::Unit::TestCase def test_style_link StyleLinkToTag.each { |method, tag| assert_equal(tag, eval(method)) } end + + def test_image_tag + assert_equal %(<img alt="Gold" height="70" src="/images/gold.png" width="45" />), image_tag("gold", :size => "45x70") + end end
\ No newline at end of file diff --git a/actionpack/test/template/tag_helper_test.rb b/actionpack/test/template/tag_helper_test.rb index cf3dabd522..f5394bd483 100644 --- a/actionpack/test/template/tag_helper_test.rb +++ b/actionpack/test/template/tag_helper_test.rb @@ -17,8 +17,4 @@ class TagHelperTest < Test::Unit::TestCase assert_equal content_tag("a", "Create", "href" => "create"), content_tag("a", "Create", :href => "create") end - - def test_image_tag - assert_equal %(<img alt="Gold" height="70" src="/images/gold.png" width="45" />), image_tag("gold", :size => "45x70") - end end diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb index 828af7bb14..8e0016f0fd 100644 --- a/actionpack/test/template/url_helper_test.rb +++ b/actionpack/test/template/url_helper_test.rb @@ -1,11 +1,13 @@ require File.dirname(__FILE__) + '/../abstract_unit' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/url_helper' +require File.dirname(__FILE__) + '/../../lib/action_view/helpers/asset_tag_helper' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/tag_helper' RequestMock = Struct.new("Request", :request_uri) class UrlHelperTest < Test::Unit::TestCase + include ActionView::Helpers::AssetTagHelper include ActionView::Helpers::UrlHelper include ActionView::Helpers::TagHelper |