class Nanoc::DataSources::SprocketsDataSource

Constants

LOOSE_ASSETS

Public Instance Methods

items() click to toggle source
# File lib/nanoc-sprockets.rb, line 21
def items
  assets = environment.each_logical_path(*compiled_assets).to_a

  assets.map do |bundle|
    identifier = "/#{bundle}"
    asset = environment.find_asset(bundle)
    is_binary = !!(asset.pathname && !@site_config[:text_extensions].include?(File.extname(asset.pathname)[1..-1]))

    content_of_filename = is_binary ? asset.pathname : asset.to_s
    attributes = {filename: identifier, mtime: asset.mtime}
    new_item(content_of_filename, attributes, identifier, binary: is_binary)
  end
end
up() click to toggle source
# File lib/nanoc-sprockets.rb, line 13
def up
  @config = {
    path: 'assets',
    compile: [],
    assets_additionnal_paths: []
  }.merge(@config)
end

Protected Instance Methods

compiled_assets() click to toggle source
# File lib/nanoc-sprockets.rb, line 62
def compiled_assets
  config[:compile] + [LOOSE_ASSETS]
end
create_environment() click to toggle source
# File lib/nanoc-sprockets.rb, line 40
def create_environment
  env = ::Sprockets::Environment.new

  %w(javascripts images stylesheets fonts).each do |asset|
    env.append_path File.join(config[:path], asset)
  end
  config[:assets_additionnal_paths].each do |path|
    env.append_path path
  end
  env.js_compressor  = config[:js_compressor].to_sym
  env.css_compressor = config[:css_compressor].to_sym

  # Configure Sprockets::Helpers
  Sprockets::Helpers.configure do |c|
    c.environment = env
    c.prefix      = config[:items_root]
    c.asset_host  = config[:asset_host] if config[:asset_host]
    c.digest      = config[:digest]     if config[:digest]
  end
  env
end
environment() click to toggle source
# File lib/nanoc-sprockets.rb, line 36
def environment
  @environment ||= create_environment
end