Module | ActionView::Helpers::AssetTagHelper |
In: |
vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb
|
Provides methods for linking a HTML page together with other assets, such as javascripts, stylesheets, and feeds.
JAVASCRIPT_DEFAULT_SOURCES | = | ['prototype', 'effects', 'dragdrop', 'controls'] unless const_defined?(:JAVASCRIPT_DEFAULT_SOURCES) |
Register one or more additional JavaScript files to be included when
javascript_include_tag :defaults
is called. This method is intended to be called only from plugin initialization to register extra .js files the plugin installed in public/javascripts.
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 84 84: def self.register_javascript_include_default(*sources) 85: @@javascript_default_sources.concat(sources) 86: end
Returns a link tag that browsers and news readers can use to auto-detect a RSS or ATOM feed for this page. The type can either be :rss (default) or :atom and the options follow the url_for style of declaring a link target.
Examples:
auto_discovery_link_tag # => <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.curenthost.com/controller/action" /> auto_discovery_link_tag(:atom) # => <link rel="alternate" type="application/atom+xml" title="ATOM" href="http://www.curenthost.com/controller/action" /> auto_discovery_link_tag(:rss, {:action => "feed"}) # => <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.curenthost.com/controller/feed" /> auto_discovery_link_tag(:rss, {:action => "feed"}, {:title => "My RSS"}) # => <link rel="alternate" type="application/rss+xml" title="My RSS" href="http://www.curenthost.com/controller/feed" />
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 21 21: def auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {}) 22: tag( 23: "link", 24: "rel" => tag_options[:rel] || "alternate", 25: "type" => tag_options[:type] || "application/#{type}+xml", 26: "title" => tag_options[:title] || type.to_s.upcase, 27: "href" => url_options.is_a?(Hash) ? url_for(url_options.merge(:only_path => false)) : url_options 28: ) 29: end
Returns path to an image asset. Example:
The src can be supplied as a…
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 124 124: def image_path(source) 125: unless (source.split("/").last || source).include?(".") || source.blank? 126: ActiveSupport::Deprecation.warn( 127: "You've called image_path with a source that doesn't include an extension. " + 128: "In Rails 2.0, that will not result in .png automatically being appended. " + 129: "So you should call image_path('#{source}.png') instead" 130: ) 131: end 132: 133: compute_public_path(source, 'images', 'png') 134: end
Returns an image tag converting the options into html options on the tag, but with these special cases:
The src can be supplied as a…
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 145 145: def image_tag(source, options = {}) 146: options.symbolize_keys! 147: 148: options[:src] = image_path(source) 149: options[:alt] ||= File.basename(options[:src], '.*').split('.').first.capitalize 150: 151: if options[:size] 152: options[:width], options[:height] = options[:size].split("x") 153: options.delete :size 154: end 155: 156: tag("img", options) 157: end
Returns a script include tag per source given as argument. Examples:
javascript_include_tag "xmlhr" # => <script type="text/javascript" src="/javascripts/xmlhr.js"></script> javascript_include_tag "common.javascript", "/elsewhere/cools" # => <script type="text/javascript" src="/javascripts/common.javascript"></script> <script type="text/javascript" src="/elsewhere/cools.js"></script> javascript_include_tag :defaults # => <script type="text/javascript" src="/javascripts/prototype.js"></script> <script type="text/javascript" src="/javascripts/effects.js"></script> ... <script type="text/javascript" src="/javascripts/application.js"></script> *see below
If there’s an application.js file in your public/javascripts directory, javascript_include_tag :defaults will automatically include it. This file facilitates the inclusion of small snippets of JavaScript code, along the lines of controllers/application.rb and helpers/application_helper.rb.
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 60 60: def javascript_include_tag(*sources) 61: options = sources.last.is_a?(Hash) ? sources.pop.stringify_keys : { } 62: 63: if sources.include?(:defaults) 64: sources = sources[0..(sources.index(:defaults))] + 65: @@javascript_default_sources.dup + 66: sources[(sources.index(:defaults) + 1)..sources.length] 67: 68: sources.delete(:defaults) 69: sources << "application" if defined?(RAILS_ROOT) && File.exists?("#{RAILS_ROOT}/public/javascripts/application.js") 70: end 71: 72: sources.collect { |source| 73: source = javascript_path(source) 74: content_tag("script", "", { "type" => "text/javascript", "src" => source }.merge(options)) 75: }.join("\n") 76: end
Returns path to a javascript asset. Example:
javascript_path "xmlhr" # => /javascripts/xmlhr.js
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 34 34: def javascript_path(source) 35: compute_public_path(source, 'javascripts', 'js') 36: end
Returns a css link tag per source given as argument. Examples:
stylesheet_link_tag "style" # => <link href="/stylesheets/style.css" media="screen" rel="Stylesheet" type="text/css" /> stylesheet_link_tag "style", :media => "all" # => <link href="/stylesheets/style.css" media="all" rel="Stylesheet" type="text/css" /> stylesheet_link_tag "random.styles", "/css/stylish" # => <link href="/stylesheets/random.styles" media="screen" rel="Stylesheet" type="text/css" /> <link href="/css/stylish.css" media="screen" rel="Stylesheet" type="text/css" />
# File vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 110 110: def stylesheet_link_tag(*sources) 111: options = sources.last.is_a?(Hash) ? sources.pop.stringify_keys : { } 112: sources.collect { |source| 113: source = stylesheet_path(source) 114: tag("link", { "rel" => "Stylesheet", "type" => "text/css", "media" => "screen", "href" => source }.merge(options)) 115: }.join("\n") 116: end