Module: Padrino::Helpers::AssetTagHelpers
- Defined in:
- padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb
Overview
Helpers related to producing assets (images,stylesheets,js,etc) within templates.
Instance Method Summary (collapse)
-
- (String) asset_path(kind, source)
Returns the path to the specified asset (css or javascript).
-
- (String) button_to(*args, &block)
Creates a form containing a single button that submits to the url.
-
- (String) favicon_tag(source, options = {})
Generates a favicon link.
-
- (String) feed_tag(mime, url, options = {})
Creates a link tag that browsers and news readers can use to auto-detect an RSS or ATOM feed.
-
- (String) flash_tag(*args)
Creates a div to display the flash of given type if it exists.
-
- (String) image_path(src)
Returns the path to the image, either relative or absolute.
-
- (String) image_tag(url, options = {})
Creates an image element with given url and options.
-
- (String) javascript_include_tag(*sources, options = {})
Returns an html script tag for each of the sources provided.
-
- (String) link_to(*args, &block)
Creates a link element with given name, url and options.
-
- (String) mail_to(email, caption = nil, mail_options = {})
Creates a mail link element with given name and caption.
-
- (String) meta_tag(content, options = {})
Creates a meta element with the content and given options.
-
- (String) stylesheet_link_tag(*sources, options = {})
Returns an html script tag for each of the sources provided.
Instance Method Details
- (String) asset_path(kind, source)
Returns the path to the specified asset (css or javascript)
343 344 345 346 347 348 349 350 351 352 353 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 343 def asset_path(kind, source) return source if source =~ /^http/ is_absolute = source =~ %r{^/} asset_folder = asset_folder_name(kind) source = source.to_s.gsub(/\s/, '%20') ignore_extension = (asset_folder.to_s == kind.to_s) # don't append an extension source << ".#{kind}" unless ignore_extension or source =~ /\.#{kind}/ result_path = is_absolute ? source : uri_root_path(asset_folder, source) = (result_path, is_absolute) "#{result_path}#{timestamp}" end |
- (String) button_to(name, url, options = {}) - (String) button_to(name, options = {}, &block)
Creates a form containing a single button that submits to the url.
120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 120 def (*args, &block) name, url = args[0], args[1] = args. desired_method = [:method] .delete(:method) if [:method].to_s !~ /get|post/i .reverse_merge!(:method => 'post', :action => url) [:enctype] = 'multipart/form-data' if .delete(:multipart) ['data-remote'] = 'true' if .delete(:remote) inner_form_html = hidden_form_method_field(desired_method) inner_form_html += block_given? ? capture_html(&block) : submit_tag(name) content_tag('form', inner_form_html, ) end |
- (String) favicon_tag(source, options = {})
Generates a favicon link. looks inside images folder
233 234 235 236 237 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 233 def favicon_tag(source, ={}) type = File.extname(source).gsub('.','') = .dup.reverse_merge!(:href => image_path(source), :rel => 'icon', :type => "image/#{type}") tag(:link, ) end |
- (String) feed_tag(mime, url, options = {})
Creates a link tag that browsers and news readers can use to auto-detect an RSS or ATOM feed.
@param options
The for the feed tag.
158 159 160 161 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 158 def feed_tag(mime, url, ={}) full_mime = (mime == :atom) ? 'application/atom+xml' : 'application/rss+xml' tag(:link, .reverse_merge(:rel => 'alternate', :type => full_mime, :title => mime, :href => url)) end |
- (String) flash_tag(*args)
Creates a div to display the flash of given type if it exists
25 26 27 28 29 30 31 32 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 25 def flash_tag(*args) = args. args.map do |kind| flash_text = flash[kind] next if flash_text.blank? content_tag(:div, flash_text, .reverse_merge(:class => kind)) end.compact * "\n" end |
- (String) image_path(src)
Returns the path to the image, either relative or absolute. We search it in
your appname.public_folder like app/public/images for
inclusion. You can provide also a full path.
318 319 320 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 318 def image_path(src) asset_path(:images, src) end |
- (String) image_tag(url, options = {})
Creates an image element with given url and options
253 254 255 256 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 253 def image_tag(url, ={}) .reverse_merge!(:src => image_path(url)) tag(:img, ) end |
- (String) javascript_include_tag(*sources, options = {})
Returns an html script tag for each of the sources provided. You can pass
in the filename without extension or a symbol and we search it in your
appname.public_folder like app/public/javascript for
inclusion. You can provide also a full path.
296 297 298 299 300 301 302 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 296 def javascript_include_tag(*sources) = sources..symbolize_keys .reverse_merge!(:type => 'text/javascript') sources.flatten.map { |source| content_tag(:script, nil, .reverse_merge(:src => asset_path(:js, source))) }.join("\n") end |
- (String) link_to(caption, url, options = {}) - (String) link_to(url, options = {}, &block)
Creates a link element with given name, url and options
Note that you can pass :if or :unless conditions,
but if you provide :current as condition padrino return true/false if the
request.path_info match the given url
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 71 def link_to(*args, &block) = args. anchor = "##{CGI.escape options.delete(:anchor).to_s}" if [:anchor] if block_given? url = args[0] ? args[0] + anchor.to_s : anchor || '#' .reverse_merge!(:href => url) link_content = capture_html(&block) return '' unless parse_conditions(url, ) result_link = content_tag(:a, link_content, ) block_is_template?(block) ? concat_content(result_link) : result_link else name, url = args[0], (args[1] ? args[1] + anchor.to_s : anchor || '#') return name unless parse_conditions(url, ) .reverse_merge!(:href => url) content_tag(:a, name, ) end end |
- (String) mail_to(email, caption = nil, mail_options = {})
Creates a mail link element with given name and caption.
186 187 188 189 190 191 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 186 def mail_to(email, caption=nil, ={}) = .slice!(:cc, :bcc, :subject, :body) mail_query = Rack::Utils.build_query().gsub(/\+/, '%20').gsub('%40', '@') mail_href = "mailto:#{email}"; mail_href << "?#{mail_query}" if mail_query.present? link_to((caption || email), mail_href, ) end |
- (String) meta_tag(content, options = {})
Creates a meta element with the content and given options.
211 212 213 214 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 211 def (content, ={}) .reverse_merge!("content" => content) tag(:meta, ) end |
- (String) stylesheet_link_tag(*sources, options = {})
Returns an html script tag for each of the sources provided. You can pass
in the filename without extension or a symbol and we search it in your
appname.public_folder like app/public/stylesheets for
inclusion. You can provide also a full path.
273 274 275 276 277 278 279 |
# File 'padrino-helpers/lib/padrino-helpers/asset_tag_helpers.rb', line 273 def stylesheet_link_tag(*sources) = sources..symbolize_keys .reverse_merge!(:media => 'screen', :rel => 'stylesheet', :type => 'text/css') sources.flatten.map { |source| tag(:link, .reverse_merge(:href => asset_path(:css, source))) }.join("\n") end |