Sha256: 8bf6bdacb975dfb576d4cd8ae4b133ab198d4235029abb9d6158269115c94123

Contents?: true

Size: 1023 Bytes

Versions: 11

Compression:

Stored size: 1023 Bytes

Contents

require "yui/compressor"

module HerokuDeployment
  class Packer
    
    class << self
      def compress_js(file)
        return unless File.exists?(file)
        new(file, :js).compress
      end
      
      def compress_css(file)
        return unless File.exists?(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

11 entries across 11 versions & 1 rubygems

Version Path
heroku_deployment-0.0.9 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.8 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.7 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.13 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.11 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.10 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.6 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.5 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.4 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.3 lib/heroku_deployment/packer.rb
heroku_deployment-0.0.2 lib/heroku_deployment/packer.rb