Class: Squeezy

Inherits:
Object
  • Object
show all
Includes:
Java
Defined in:
lib/squeezy.rb,
lib/squeezy/service.rb,
lib/squeezy/version.rb,
lib/squeezy/reporter.rb,
lib/squeezy/compressor.rb

Defined Under Namespace

Classes: Reporter, Service

Constant Summary collapse

VERSION =
'0.0.1'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.run_serviceObject



10
11
12
# File 'lib/squeezy.rb', line 10

def self.run_service
  Squeezy::Service.run!
end

Instance Method Details

#compress_css(contents) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/squeezy/compressor.rb', line 18

def compress_css(contents)
  with_cached_file "/tmp/#{Digest::MD5.hexdigest(contents)}.css" do
    CssCompressor.new(java.io.StringReader.new(contents)).compress(result = java.io.StringWriter.new(), -1)
    result.to_s
  end
rescue Exception => e
  $stderr.puts e
  $stderr.puts "Compression of CSS failed!"
  contents
end

#compress_js(contents) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/squeezy/compressor.rb', line 29

def compress_js(contents)
  with_cached_file "/tmp/#{Digest::MD5.hexdigest(contents)}.js" do
    JavaScriptCompressor.new(java.io.StringReader.new(contents), Reporter.new).compress(result = java.io.StringWriter.new(), -1, true, false, false, false)
    result.to_s
  end
rescue Exception => e
  $stderr.puts e
  $stderr.puts "Compression of JS failed!"
  contents
end

#with_cached_file(file) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/squeezy/compressor.rb', line 8

def with_cached_file(file)
  if File.exist?(file)
    File.read(file)
  else
    contents = yield
    File.open(file, 'w') {|f| f << contents}
    contents
  end
end