Class: CSSReader

Inherits:
Object
  • Object
show all
Defined in:
lib/asset_build/css_reader.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ CSSReader

Returns a new instance of CSSReader.



5
6
7
8
9
10
# File 'lib/asset_build/css_reader.rb', line 5

def initialize(*args)
  @@yui = YUI::CssCompressor.new
  @files = {}
  @processed_css = []
  append(*args)
end

Instance Method Details

#append(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/asset_build/css_reader.rb', line 12

def append(*args)
  unless args.nil? || args.length < 1
    if args.length == 1 
      args = args[0] if args.class == Array
      args = [args] if args.class == String
    end
    for path in args
      file = File.open(path)
      unless @files.keys.include?(path)
        process_imports( @files[path] = {
                          :name       => File.basename(path), 
                          :directory  => File.dirname(path), 
                          :contents   => file.readlines, 
                          :position   => @files.length } )
      end
    end
  end
end

#compressedObject



39
40
41
# File 'lib/asset_build/css_reader.rb', line 39

def compressed
  @@yui.compress(normal)
end

#normalObject



35
36
37
# File 'lib/asset_build/css_reader.rb', line 35

def normal
  @processed_css.join("")
end

#save(name, options = {}) ⇒ Object



43
44
45
46
# File 'lib/asset_build/css_reader.rb', line 43

def save(name,options={})
  compress = options[:compress] || false
  File.open(name,'w') {|f| f.write compress ? compressed : normal }
end

#stylesheetsObject



31
32
33
# File 'lib/asset_build/css_reader.rb', line 31

def stylesheets
  @files.map { |path,values| values[:name] }
end