class FrontEndTasks::Documents::CssDocument

Public Class Methods

find_and_update_url_references(css_root, new_root, content) click to toggle source
# File lib/front_end_tasks/documents/css_document.rb, line 16
def self.find_and_update_url_references(css_root, new_root, content)
  assets = []
  updated_content = content

  url_references = content.scan(/url\(\s?['"](.*?)['"]\s?\)/)
  url_references.each do |url_reference|
    url = url_reference[0].strip
    filename = File.basename(url).split("?")[0].split("#")[0]
    local_file_path = File.join(css_root, File.dirname(url), filename)
    new_path = File.join(new_root, filename)

    # flatten url to down to just basename (including ? and # junk)
    updated_content.sub!(url, File.basename(url))

    # get asset contents
    asset = AssetDocument.new(css_root, File.read(local_file_path))
    asset.compiled_path = new_path
    assets << asset
  end

  [updated_content, assets]
end

Public Instance Methods

compile(opts = {}) click to toggle source
# File lib/front_end_tasks/documents/css_document.rb, line 9
def compile(opts = {})
  compressor = YUI::CssCompressor.new
  compiled_content = compressor.compress(@content)

  { @compiled_path => compiled_content }
end