Class: RubyCleanCSS::Compressor

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-clean-css/compressor.rb

Constant Summary collapse

LIB_PATH =
File.expand_path(File.dirname(__FILE__)+'/../javascript')

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Compressor

Returns a new instance of Compressor.



8
9
10
# File 'lib/ruby-clean-css/compressor.rb', line 8

def initialize(options = {})
  @js_options = js_options_from_hash(options)
end

Instance Attribute Details

#last_resultObject (readonly)

Returns the value of attribute last_result.



5
6
7
# File 'lib/ruby-clean-css/compressor.rb', line 5

def last_result
  @last_result
end

Instance Method Details

#compress(stream_or_string) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ruby-clean-css/compressor.rb', line 13

def compress(stream_or_string)
  @last_result = result = { :min => nil }
  begin
    minifier.minify(stream_or_string.to_s, lambda { |this, errs, data|
      result[:min] = data
    })
  rescue => e
    raise(e)
  ensure
    result[:errors] = minifier.context.errors
    result[:warnings] = minifier.context.warnings
    GC.start # This prevents unexplained segmentation faults in the ref gem!
  end
  result[:min]
end

#minifierObject



30
31
32
# File 'lib/ruby-clean-css/compressor.rb', line 30

def minifier
  @minifier ||= minifier_class.call(@js_options)
end