diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 743bc34..f54a85a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1065,6 +1065,18 @@ module ApplicationHelper super sources, options end + # Overrides Rails' image_tag with plugins support. + # Examples: + # image_tag('image.png') # => picks defaults image.png + # image_tag('image.png', :plugin => 'foo) # => picks image.png from plugin's assets + # + def image_tag(source, options={}) + if plugin = options.delete(:plugin) + source = "/plugin_assets/#{plugin}/images/#{source}" + end + super source, options + end + # Overrides Rails' javascript_include_tag with plugins support # Examples: # javascript_include_tag('scripts') # => picks scripts.js from defaults diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index f09d666..9bf25e6 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -1054,6 +1054,14 @@ RAW assert_match 'href="/plugin_assets/foo/stylesheets/styles.css"', stylesheet_link_tag("styles", :plugin => :foo) end + def test_image_tag_should_pick_the_default_image + assert_match 'src="/images/image.png"', image_tag("image.png") + end + + def test_image_tag_sfor_plugin_should_pick_the_plugin_image + assert_match 'src="/plugin_assets/foo/images/image.png"', image_tag("image.png", :plugin => :foo) + end + def test_javascript_include_tag_should_pick_the_default_javascript assert_match 'src="/javascripts/scripts.js"', javascript_include_tag("scripts") end