Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
logandk committed Apr 9, 2009
0 parents commit 3478e47
Show file tree
Hide file tree
Showing 10 changed files with 144 additions and 0 deletions.
20 changes: 20 additions & 0 deletions MIT-LICENSE
@@ -0,0 +1,20 @@
Copyright (c) 2009 Logan Raarup

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44 changes: 44 additions & 0 deletions README.markdown
@@ -0,0 +1,44 @@
sprockets-compressor - Minified Sprockets output
=================================================

This is a Ruby on Rails plugin, which passes Sprockets output through YUI Javascript compressor.



Installation
============

As a Rails Plugin
-----------------

Use this to install as a plugin in a Ruby on Rails app:

$ script/plugin install git://github.com/logandk/sprockets-compressor.git


As a Rails Plugin (using git submodules)
----------------------------------------

Use this if you prefer the idea of being able to easily switch between using edge or a tagged version:

$ git submodule add git://github.com/logandk/sprockets-compressor.git vendor/plugins/sprockets-compressor



Usage
=====

Besides installation, you don't have to do anything to use this plugin. It simply overrides the `save_to` method of the `Sprockets::Concatenation` class, to pass the output through *YUI Compressor*.

secretary = Sprockets::Secretary.new({ ... })
secretary.concatenation.save_to("file.js")

In the above example, `file.js` would be a compressed javascript file.



Credits
=======
[YUI Compressor](http://developer.yahoo.com/yui/compressor/) is developed by Yahoo. [Sprockets](http://github.com/sstephenson/sprockets/tree/master) is developed by Sam Stephenson.

Copyright (c) 2009 Logan Raarup, released under the MIT license
23 changes: 23 additions & 0 deletions Rakefile
@@ -0,0 +1,23 @@
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'

desc 'Default: run unit tests.'
task :default => :test

desc 'Test the sprockets_compressor plugin.'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.libs << 'test'
t.pattern = 'test/**/*_test.rb'
t.verbose = true
end

desc 'Generate documentation for the sprockets_compressor plugin.'
Rake::RDocTask.new(:rdoc) do |rdoc|
rdoc.rdoc_dir = 'rdoc'
rdoc.title = 'SprocketsCompressor'
rdoc.options << '--line-numbers' << '--inline-source'
rdoc.rdoc_files.include('README')
rdoc.rdoc_files.include('lib/**/*.rb')
end
1 change: 1 addition & 0 deletions init.rb
@@ -0,0 +1 @@
require File.join(File.dirname(__FILE__), 'rails', 'init')
16 changes: 16 additions & 0 deletions lib/sprockets_compressor.rb
@@ -0,0 +1,16 @@
module Sprockets
class Concatenation

def save_to_with_compress(filename)
status = save_to_without_compress(filename)

compressor = Dir.glob("#{File.dirname(__FILE__)}/../vendor/yuicompressor-*.jar")
%x{ java -jar #{compressor} -o #{filename} #{filename} }

status
end

alias_method_chain :save_to, :compress

end
end
1 change: 1 addition & 0 deletions rails/init.rb
@@ -0,0 +1 @@
require 'sprockets_compressor'
8 changes: 8 additions & 0 deletions test/sprockets_compressor_test.rb
@@ -0,0 +1,8 @@
require 'test_helper'

class SprocketsCompressorTest < ActiveSupport::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
end
end
3 changes: 3 additions & 0 deletions test/test_helper.rb
@@ -0,0 +1,3 @@
require 'rubygems'
require 'active_support'
require 'active_support/test_case'
28 changes: 28 additions & 0 deletions vendor/YUI-LICENSE
@@ -0,0 +1,28 @@
Software License Agreement (BSD License)
----------------------------------------
Copyright (c) 2009, Yahoo! Inc.
All rights reserved.

Redistribution and use of this software in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.

* Neither the name of Yahoo! Inc. nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written permission
of Yahoo! Inc.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Binary file added vendor/yuicompressor-2.4.2.jar
Binary file not shown.

0 comments on commit 3478e47

Please sign in to comment.