closure-compiler 0.1.6 → 0.1.7

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 CHANGED
@@ -1,6 +1,8 @@
1
1
  h1. The Closure Compiler (as a Ruby Gem)
2
2
 
3
- The *closure-compiler* gem is a super-thin wrapper around the "Google Closure Compiler":http://code.google.com/closure/compiler/ for JavaScript compression.
3
+ The *closure-compiler* gem is a svelte wrapper around the "Google Closure Compiler":http://code.google.com/closure/compiler/ for JavaScript compression.
4
+
5
+ Latest Version: *"0.1.7":http://gemcutter.org/gems/closure-compiler*
4
6
 
5
7
  The Closure Compiler's *2009-12-17* JAR-file is included with the gem, so you'll need *Java 6* installed in order to run the compiler.
6
8
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'closure-compiler'
3
- s.version = '0.1.6' # Keep version in sync with closure-compiler.rb
4
- s.date = '2010-1-18'
3
+ s.version = '0.1.7' # Keep version in sync with closure-compiler.rb
4
+ s.date = '2010-1-23'
5
5
 
6
6
  s.homepage = "http://github.com/documentcloud/closure-compiler/"
7
7
  s.summary = "Ruby Wrapper for the Google Closure Compiler"
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
20
20
  '--exclude' << 'test' <<
21
21
  '--all'
22
22
 
23
+ s.add_dependency 'popen4', ['>= 0.1.2']
24
+
23
25
  s.files = Dir['lib/**/*', 'vendor/**/*', 'closure-compiler.gemspec', 'README.textile', 'LICENSE', 'COPYING']
24
26
 
25
27
  end
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/closure/compiler')
2
2
 
3
3
  module Closure
4
4
 
5
- VERSION = "0.1.6"
5
+ VERSION = "0.1.7"
6
6
 
7
7
  COMPILER_VERSION = "20091217"
8
8
 
@@ -1,8 +1,12 @@
1
- require 'open3'
1
+ require 'rubygems'
2
+ require 'popen4'
2
3
  require 'stringio'
3
4
 
4
5
  module Closure
5
6
 
7
+ # We raise a Closure::Error when compilation fails for any reason.
8
+ class Error < StandardError; end
9
+
6
10
  # The Closure::Compiler is a basic wrapper around the actual JAR. There's not
7
11
  # much to see here.
8
12
  class Compiler
@@ -18,7 +22,8 @@ module Closure
18
22
  # JavaScript as a string or yields an IO object containing the response to a
19
23
  # block, for streaming.
20
24
  def compile(io)
21
- Open3.popen3(*command) do |stdin, stdout, stderr|
25
+ result, error = nil, nil
26
+ status = POpen4.popen4(*command) do |stdout, stderr, stdin, pid|
22
27
  if io.respond_to? :read
23
28
  while buffer = io.read(4096) do
24
29
  stdin.write(buffer)
@@ -27,8 +32,11 @@ module Closure
27
32
  stdin.write(io.to_s)
28
33
  end
29
34
  stdin.close
30
- block_given? ? yield(stdout) : stdout.read
35
+ result = block_given? ? yield(stdout) : stdout.read
36
+ error = stderr.read
31
37
  end
38
+ raise Error, error unless status.success?
39
+ result
32
40
  end
33
41
  alias_method :compress, :compile
34
42
 
@@ -41,7 +49,7 @@ module Closure
41
49
  end
42
50
 
43
51
  def command
44
- [@java, '-jar', @jar, @options].flatten
52
+ [@java, '-jar', @jar, @options].flatten.join(' ')
45
53
  end
46
54
 
47
55
  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.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Ashkenas
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-18 00:00:00 -05:00
12
+ date: 2010-01-23 00:00:00 -05:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: popen4
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.2
24
+ version:
16
25
  description: " A Ruby Wrapper for the Google Closure Compiler.\n"
17
26
  email: jeremy@documentcloud.org
18
27
  executables: []