Class: FrontEndTasks::Documents::CssDocument

Inherits:
BaseDocument show all
Defined in:
lib/front_end_tasks/documents/css_document.rb

Instance Attribute Summary

Attributes inherited from BaseDocument

#compiled_path

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseDocument

#initialize

Constructor Details

This class inherits a constructor from FrontEndTasks::Documents::BaseDocument

Class Method Details

.find_and_update_url_references(css_root, new_root, content) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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

Instance Method Details

#compileObject



9
10
11
12
13
14
# File 'lib/front_end_tasks/documents/css_document.rb', line 9

def compile
  compressor = YUI::CssCompressor.new
  compiled_content = compressor.compress(@content)

  { @compiled_path => compiled_content }
end