Module: Csso

Defined in:
lib/csso.rb,
lib/csso/cli.rb,
lib/csso/js_lib.rb,
lib/csso/railtie.rb,
lib/csso/version.rb,
lib/csso/compressor.rb

Defined Under Namespace

Modules: CLI Classes: Compressor, JsLib, Optimizer, Railtie

Constant Summary collapse

VERSION =
'0.6.0'
CSSO_JS_LIB =
'vendor/csso/csso.js'

Class Method Summary collapse

Class Method Details

.install(sprockets) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/csso.rb', line 11

def self.install(sprockets)
  unless sprockets
    raise "no compatible sprockets found" unless Sprockets.respond_to? :register_compressor
    Sprockets.register_compressor('text/css', :csso, Compressor)
    return
  end
  if sprockets.respond_to? :register_compressor
    sprockets.register_compressor('text/css', :csso, Compressor)
    sprockets.css_compressor = :csso
  else
    Sprockets::Compressors.register_css_compressor(:csso, 'Csso::Compressor', :default => true)
  end
end

.js_apiObject



7
8
9
# File 'lib/csso.rb', line 7

def self.js_api
  @csso ||= Csso::JsLib.new
end

.optimize(css, maniac_mode = false, structural_optimization = true) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/csso.rb', line 25

def self.optimize(css, maniac_mode=false, structural_optimization=true)
  if maniac_mode
    maniac_mode = 4 unless maniac_mode.is_a?(Fixnum) && maniac_mode > 0
    begin
      prev_css = css
      css = Optimizer.new.optimize(css, structural_optimization)
      maniac_mode -= 1
    end while maniac_mode > 0 && prev_css != css
    css
  else
    Optimizer.new.optimize(css, structural_optimization)
  end
end

.optimize_with_sourcemap(css, filename, structural_optimization = true) ⇒ Object



39
40
41
42
43
# File 'lib/csso.rb', line 39

def self.optimize_with_sourcemap css, filename, structural_optimization=true
  return nil unless css.is_a?(String)
  return css if css.size <= 3
  Csso.js_api.compress_with_sourcemap(css, filename, structural_optimization)
end