class Smurf::Javascript

Public Class Methods

minifies?(paths) click to toggle source
# File lib/smurf/javascript.rb, line 42
def self.minifies?(paths) !paths.grep(%r[\.js(\?\d+)?$]).empty?; end
new(content) click to toggle source
# File lib/smurf/javascript.rb, line 44
def initialize(content)
  @content = nil
  java_exists = %x[which java].present?
  
  if java_exists
    @content = minify_with_closure_compiler(content)
    Rails.logger.info "Closure Compiler failed" if @content.blank?
  end
  
  if @content.blank?
    Rails.logger.info "Closure Compiler not found" unless java_exists
    @content = JSMin.minify(content)
  end
  
  @content
end

Public Instance Methods

minified() click to toggle source
# File lib/smurf/javascript.rb, line 61
def minified; @content end
minify_with_closure_compiler(content) click to toggle source
# File lib/smurf/javascript.rb, line 63
def minify_with_closure_compiler(content)
  jar_file = File.join(File.dirname(__FILE__), '..', 'closure-compiler', 'compiler.jar')
  IO.popen("java -jar #{jar_file}", "r+") do |p|
    p.write content
    p.close_write
    content = p.read
  end
  content if $? == 0
end