Usage

Note that there is a Main App and an App2. This is to demonstrate that you can give links relative to the app, but if they are mounted with an extra prefix (using Rack#map, for example) the helper will respect that and produce the right href attribute.

Installation and loading

Start by installing:

gem 'sinatra-exstatic-assets'

Then require it in your Sinatra app.

require 'sinatra/exstatic_assets'

The helpers

Use these helpers in your views.

To add an attribute to a helper, pass it as an option, e.g. width: "500"

Sometimes, you won't want the script tag (e.g. "/app2") prepended to the url, like in the case of a favicon. In that case you can pass in url_options: {script_tag: false} to the helper, e.g. favicon_tag url_options: {script_tag: false}

stylesheet_tag

The code:

stylesheet_tag "/css/screen.css"

Output:

<%= Rack::Utils.escape_html( stylesheet_tag "/css/screen.css") %>

Also known as:

  • css_tag
  • stylesheet

javascript_tag

The code:

javascript_tag "http://code.jquery.com/jquery-1.9.1.min.js"

Output:

<%= Rack::Utils.escape_html( javascript_tag "http://code.jquery.com/jquery-1.9.1.min.js") %>

The code:

javascript_tag "/js/helpers.js"

Output:

<%= Rack::Utils.escape_html( javascript_tag "/js/helpers.js" ) %>

Also known as:

  • javascript_include_tag
  • js_tag
  • script_tag

image_tag

The code:

image_tag "http://farm1.staticflickr.com/10/12470738_fc0212bf8c.jpg", width: "500", height: "375", alt: "Greased Lightning"

Output:

<%= Rack::Utils.escape_html( image_tag "http://farm1.staticflickr.com/10/12470738_fc0212bf8c.jpg", width: "500", height: "375", alt: "Greased Lightning" ) %>

The code:

image_tag "/images/turnip.jpg", width: "500", height: "375", alt: "Turnip"

Output:

<%= Rack::Utils.escape_html( image_tag "/images/turnip.jpg", width: "500", height: "375", alt: "Turnip" ) %>

Also known as:

  • img_tag
  • img

favicon_tag

The code:

favicon_tag

Output:

<%= Rack::Utils.escape_html( favicon_tag url_options: {script_tag: false} ) %>