Files

Jammit::Helper

The Jammit::Helper module, which is made available to every view, provides helpers for writing out HTML tags for asset packages. In development you get the ordered list of source files -- in any other environment, a link to the cached packages.

Public Instance Methods

include_javascripts(*packages) click to toggle source

Writes out the URL to the bundled and compressed javascript package, except in development, where it references the individual scripts.

# File lib/jammit/helper.rb, line 27
def include_javascripts(*packages)
  options = packages.extract_options!
  html_safe packages.map {|pack|
    should_package? ? Jammit.asset_url(pack, :js) : Jammit.packager.individual_urls(pack.to_sym, :js)
  }.flatten.map {|pack|
    javascript_include_tag pack, options
  }.join("\n")
end
include_stylesheets(*packages) click to toggle source

If embed_assets is turned on, writes out links to the Data-URI and MHTML versions of the stylesheet package, otherwise the package is regular compressed CSS, and in development the stylesheet URLs are passed verbatim.

# File lib/jammit/helper.rb, line 17
def include_stylesheets(*packages)
  options = packages.extract_options!
  return html_safe(individual_stylesheets(packages, options)) unless should_package?
  disabled = (options.delete(:embed_assets) == false) || (options.delete(:embed_images) == false)
  return html_safe(packaged_stylesheets(packages, options)) if disabled || !Jammit.embed_assets
  return html_safe(embedded_image_stylesheets(packages, options))
end
include_templates(*packages) click to toggle source

Writes out the URL to the concatenated and compiled JST file -- we always have to pre-process it, even in development.

# File lib/jammit/helper.rb, line 38
def include_templates(*packages)
  raise DeprecationError, "Jammit 0.5+ no longer supports separate packages for templates.\nYou can include your JST alongside your JS, and use include_javascripts."
end

Private Instance Methods

embedded_image_stylesheets(packages, options) click to toggle source

HTML tags for the 'datauri', and 'mhtml' versions of the packaged stylesheets, using conditional comments to load the correct variant.

# File lib/jammit/helper.rb, line 65
def embedded_image_stylesheets(packages, options)
  datauri_tags = tags_with_options(packages, options) {|p| Jammit.asset_url(p, :css, :datauri) }
  ie_tags = Jammit.mhtml_enabled ?
            tags_with_options(packages, options) {|p| Jammit.asset_url(p, :css, :mhtml) } :
            packaged_stylesheets(packages, options)
  [DATA_URI_START, datauri_tags, DATA_URI_END, MHTML_START, ie_tags, MHTML_END].join("\n")
end
html_safe(string) click to toggle source
# File lib/jammit/helper.rb, line 49
def html_safe(string)
  string.respond_to?(:html_safe) ? string.html_safe : string
end
individual_stylesheets(packages, options) click to toggle source

HTML tags, in order, for all of the individual stylesheets.

# File lib/jammit/helper.rb, line 54
def individual_stylesheets(packages, options)
  tags_with_options(packages, options) {|p| Jammit.packager.individual_urls(p.to_sym, :css) }
end
packaged_stylesheets(packages, options) click to toggle source

HTML tags for the stylesheet packages.

# File lib/jammit/helper.rb, line 59
def packaged_stylesheets(packages, options)
  tags_with_options(packages, options) {|p| Jammit.asset_url(p, :css) }
end
should_package?() click to toggle source
# File lib/jammit/helper.rb, line 45
def should_package?
  Jammit.package_assets && !(Jammit.allow_debugging && params[:debug_assets])
end
tags_with_options(packages, options) click to toggle source

Generate the stylesheet tags for a batch of packages, with options, by yielding each package to a block.

# File lib/jammit/helper.rb, line 75
def tags_with_options(packages, options)
  packages.dup.map {|package|
    yield package
  }.flatten.map {|package|
    stylesheet_link_tag package, options
  }.join("\n")
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.