Module: Sinatra::MarkupPlugin::AssetTagHelpers
- Defined in:
- lib/sinatra/markup_plugin/asset_tag_helpers.rb
Instance Method Summary collapse
-
#flash_tag(kind, options = {}) ⇒ Object
Creates a div to display the flash of given type if it exists flash_tag(:notice, :class => ‘flash’, :id => ‘flash-notice’).
-
#image_path(src) ⇒ Object
Returns the path to the image, either relative or absolute.
-
#image_tag(url, options = {}) ⇒ Object
Creates an image element with given url and options image_tag(‘icons/avatar.png’).
-
#javascript_include_tag(*sources) ⇒ Object
javascript_include_tag ‘application’, ‘special’.
-
#link_to(*args, &block) ⇒ Object
Creates a link element with given name, url and options link_to ‘click me’, ‘/dashboard’, :class => ‘linky’ link_to(‘/dashboard’, :class => ‘blocky’) do …
-
#mail_to(email, caption = nil, mail_options = {}) ⇒ Object
Creates a mail link element with given name and caption mail_to “[email protected]” => <a href=“[email protected]”>[email protected]</a> mail_to “[email protected]”, “My Email” => <a href=“[email protected]”>My Email</a>.
-
#meta_tag(content, options = {}) ⇒ Object
Creates a meta element with the content and given options meta_tag “weblog,news”, :name => “keywords” => <meta name=“keywords” content=“weblog,news”> meta_tag “text/html; charset=UTF-8”, :http-equiv => “Content-Type” => <meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>.
-
#stylesheet_link_tag(*sources) ⇒ Object
Returns a stylesheet link tag for the sources specified as arguments stylesheet_link_tag ‘style’, ‘application’, ‘layout’.
Instance Method Details
#flash_tag(kind, options = {}) ⇒ Object
Creates a div to display the flash of given type if it exists flash_tag(:notice, :class => ‘flash’, :id => ‘flash-notice’)
7 8 9 10 11 12 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 7 def flash_tag(kind, ={}) flash_text = flash[kind] return '' if flash_text.blank? .reverse_merge!(:class => 'flash') content_tag(:div, flash_text, ) end |
#image_path(src) ⇒ Object
Returns the path to the image, either relative or absolute
71 72 73 74 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 71 def image_path(src) src.gsub!(/\s/, '') src =~ %r{^\s*(/|http)} ? src : File.join('/images', src) end |
#image_tag(url, options = {}) ⇒ Object
Creates an image element with given url and options image_tag(‘icons/avatar.png’)
52 53 54 55 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 52 def image_tag(url, ={}) .reverse_merge!(:src => image_path(url)) tag(:img, ) end |
#javascript_include_tag(*sources) ⇒ Object
javascript_include_tag ‘application’, ‘special’
65 66 67 68 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 65 def javascript_include_tag(*sources) = sources..symbolize_keys sources.collect { |script| javascript_tag(script, ) }.join("\n") end |
#link_to(*args, &block) ⇒ Object
Creates a link element with given name, url and options link_to ‘click me’, ‘/dashboard’, :class => ‘linky’ link_to(‘/dashboard’, :class => ‘blocky’) do … end parameters: name, url=‘javascript:void(0)’, options={}, &block
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 18 def link_to(*args, &block) if block_given? url, = (args[0] || 'javascript:void(0);'), (args[1] || {}) .reverse_merge!(:href => url) link_content = capture_html(&block) result_link = content_tag(:a, link_content, ) block_is_template?(block) ? concat_content(result_link) : result_link else name, url, = args.first, (args[1] || 'javascript:void(0);'), (args[2] || {}) .reverse_merge!(:href => url) content_tag(:a, name, ) end end |
#mail_to(email, caption = nil, mail_options = {}) ⇒ Object
Creates a mail link element with given name and caption mail_to “[email protected]” => <a href=“[email protected]”>[email protected]</a> mail_to “[email protected]”, “My Email” => <a href=“[email protected]”>My Email</a>
35 36 37 38 39 40 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 35 def mail_to(email, =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 ( || email), mail_href, end |
#meta_tag(content, options = {}) ⇒ Object
Creates a meta element with the content and given options meta_tag “weblog,news”, :name => “keywords” => <meta name=“keywords” content=“weblog,news”> meta_tag “text/html; charset=UTF-8”, :http-equiv => “Content-Type” => <meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
45 46 47 48 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 45 def (content, ={}) .reverse_merge!("content" => content) tag(:meta, ) end |
#stylesheet_link_tag(*sources) ⇒ Object
Returns a stylesheet link tag for the sources specified as arguments stylesheet_link_tag ‘style’, ‘application’, ‘layout’
59 60 61 62 |
# File 'lib/sinatra/markup_plugin/asset_tag_helpers.rb', line 59 def stylesheet_link_tag(*sources) = sources..symbolize_keys sources.collect { |sheet| stylesheet_tag(sheet, ) }.join("\n") end |