class Roadie::Rails::AssetPipelineProvider

Constants

DIGEST_PATTERN

Attributes

pipeline[R]

Public Class Methods

new(pipeline) click to toggle source
Calls superclass method
# File lib/roadie/rails/asset_pipeline_provider.rb, line 9
def initialize(pipeline)
  unless pipeline
    raise(
      ArgumentError,
      "You need to pass a pipeline to initialize AssetPipelineProvider",
    )
  end

  super()
  @pipeline = pipeline
end

Public Instance Methods

find_stylesheet(name) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 21
def find_stylesheet(name)
  if (asset = find_asset_in_pipeline(name))
    Stylesheet.new("#{filename(asset)} (live compiled)", asset.to_s)
  end
end

Private Instance Methods

asset_prefix() click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 63
def asset_prefix
  ::Rails.application.try(:config).try(:assets).try(:prefix) || "/assets"
end
filename(asset) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 28
def filename(asset)
  if asset.respond_to?(:filename) # sprockets 4 or later
    asset.filename
  else
    asset.pathname
  end
end
find_asset_in_pipeline(name) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 36
def find_asset_in_pipeline(name)
  normalized_name = normalize_asset_name(name)
  @pipeline[normalized_name] ||
    @pipeline[remove_asset_digest(normalized_name)]
end
normalize_asset_name(href) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 42
def normalize_asset_name(href)
  remove_asset_prefix(href.split("?").first)
end
remove_asset_digest(path) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 55
def remove_asset_digest(path)
  path.gsub(DIGEST_PATTERN, ".")
end
remove_asset_prefix(path) click to toggle source
# File lib/roadie/rails/asset_pipeline_provider.rb, line 59
def remove_asset_prefix(path)
  path.sub(Regexp.new("^#{Regexp.quote(asset_prefix)}/?"), "")
end