closure-compiler 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +22 -11
- data/closure-compiler.gemspec +1 -1
- data/lib/closure-compiler.rb +5 -3
- data/lib/closure/compiler.rb +4 -2
- metadata +1 -2
- data/lib/closure-compiler-20091113.jar +0 -0
data/README.textile
CHANGED
@@ -7,28 +7,39 @@ The Closure Compiler's *2009-11-13* JAR-file is included with the gem, so you'll
|
|
7
7
|
h2. Installation
|
8
8
|
|
9
9
|
<pre>
|
10
|
-
|
10
|
+
sudo gem install closure-compiler --source http://gemcutter.org
|
11
11
|
</pre>
|
12
12
|
|
13
13
|
h2. Usage
|
14
14
|
|
15
|
-
The @Closure::Compiler@ has a single method, @compile@, which can be passed a string or an open @IO@ object, and returns the compiled JavaScript. The result is returned as a string, or, if a block is passed, yields as an @IO@ object for streaming writes.
|
15
|
+
The @Closure::Compiler@ has a single method, @compile@, which can be passed a string or an open @IO@ object, and returns the compiled JavaScript. The result is returned as a string, or, if a block is passed, yields as an @IO@ object for streaming writes.
|
16
16
|
|
17
17
|
<pre>
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
require 'rubygems'
|
19
|
+
require 'closure-compiler'
|
20
|
+
Closure::Compiler.new.compile(File.open('underscore.js', 'r'))
|
21
|
+
|
22
|
+
=> "(function(){var j=this,m=j._;function i(a){......
|
23
23
|
</pre>
|
24
24
|
|
25
25
|
When creating a @Closure::Compiler@, you can pass "any options that the command-line compiler accepts":http://code.google.com/closure/compiler/docs/gettingstarted_app.html to the initializer and they'll be forwarded. For example, to raise the compilation level up a notch:
|
26
26
|
|
27
27
|
<pre>
|
28
|
-
|
29
|
-
|
28
|
+
closure = Closure::Compiler.new(:compilation_level => 'ADVANCED_OPTIMIZATIONS')
|
29
|
+
closure.compile(File.open('underscore.js', 'r'))
|
30
30
|
|
31
|
-
|
31
|
+
=> "(function(){var j=this,m=j.h;function i(a){......
|
32
32
|
</pre>
|
33
33
|
|
34
|
-
The default values of all the compiler flags are identical to the command-line version. The default *compilation_level* is "SIMPLE_OPTIMIZATIONS".
|
34
|
+
The default values of all the compiler flags are identical to the command-line version. The default *compilation_level* is "SIMPLE_OPTIMIZATIONS".
|
35
|
+
|
36
|
+
h2. YUI Compressor Compatibility
|
37
|
+
|
38
|
+
Effort has been made to make the "closure-compiler" gem a drop-in alternative to the "ruby-yui-compressor". To that end, @Closure::Compiler#compile@ has been aliased as @compress@, and can take the same string or IO argument that a @YUI::JavaScriptCompressor#compress@ can. In addition, the @Closure::Compiler@ initializer can take @java@ and @jar_file@ options, overriding the location of the Java command and the Closure Compiler JAR file, respectively.
|
39
|
+
|
40
|
+
<pre>
|
41
|
+
compiler = Closure::Compiler.new(
|
42
|
+
:java => '/usr/local/bin/java16',
|
43
|
+
:jar_file => '/usr/src/closure/build/latest.jar'
|
44
|
+
)
|
45
|
+
</pre>
|
data/closure-compiler.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'closure-compiler'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.1' # Keep version in sync with closure-compiler.rb
|
4
4
|
s.date = '2009-11-18'
|
5
5
|
|
6
6
|
s.homepage = "http://github.com/documentcloud/closure-compiler/"
|
data/lib/closure-compiler.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/closure/compiler'
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/closure/compiler')
|
2
2
|
|
3
3
|
module Closure
|
4
4
|
|
5
|
-
VERSION = "0.1.
|
5
|
+
VERSION = "0.1.1"
|
6
6
|
|
7
|
-
|
7
|
+
JAVA_COMMAND = 'java'
|
8
|
+
|
9
|
+
COMPILER_JAR = File.expand_path(File.dirname(__FILE__) + "/../vendor/closure-compiler-20091113.jar")
|
8
10
|
|
9
11
|
end
|
data/lib/closure/compiler.rb
CHANGED
@@ -9,7 +9,9 @@ module Closure
|
|
9
9
|
|
10
10
|
# When you create a Compiler, pass in the flags and options.
|
11
11
|
def initialize(options={})
|
12
|
-
@
|
12
|
+
@java = options.delete(:java) || JAVA_COMMAND
|
13
|
+
@jar = options.delete(:jar_file) || COMPILER_JAR
|
14
|
+
@options = serialize_options(options)
|
13
15
|
end
|
14
16
|
|
15
17
|
# Can compile a JavaScript string or open IO object. Returns the compiled
|
@@ -39,7 +41,7 @@ module Closure
|
|
39
41
|
end
|
40
42
|
|
41
43
|
def command
|
42
|
-
[
|
44
|
+
[@java, '-jar', @jar, @options].flatten
|
43
45
|
end
|
44
46
|
|
45
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: closure-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Ashkenas
|
@@ -23,7 +23,6 @@ extra_rdoc_files: []
|
|
23
23
|
|
24
24
|
files:
|
25
25
|
- lib/closure/compiler.rb
|
26
|
-
- lib/closure-compiler-20091113.jar
|
27
26
|
- lib/closure-compiler.rb
|
28
27
|
- closure-compiler.gemspec
|
29
28
|
- README.textile
|
Binary file
|