Sha256: 5d9715e03836ae43f38d762d1737cd3dab38de2b9816315edebe425ff2c05630

Contents?: true

Size: 941 Bytes

Versions: 2

Compression:

Stored size: 941 Bytes

Contents

require "yui/compressor"

module HerokuDeployment
  class Packer
    
    class << self
      def compress_js(file)
        new(file, :js).compress
      end
      
      def compress_css(file)
        new(file, :css).compress
      end
    end
    
    attr_reader :file, :compressor
    
    def initialize(f, t)
      @file = f
      if t == :js
        @compressor = YUI::JavaScriptCompressor.new(:munge => true)
      elsif t == :css
        @compressor = YUI::CssCompressor.new
      else
        raise "File type '#{t}' is not supported"
      end
    end

    def compress
      compressed_content = compressor.compress(readfile)
      writefile(compressed_content)
    end
    
    private

    def readfile
      f = File.open(file, "r")
      content = f.readlines.join("\n")
      f.close
      content
    end
    
    def writefile(content)
      f = File.open(file, "w")
      f.write(content)
      f.close
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
heroku_deployment-0.0.0 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.1 lib/heroku_deployment/packer.rb