rapper 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "closure-compiler", "~> 1.0.0"
4
-
5
3
  group :development do
6
4
  gem "rspec", "~> 1.3.1"
7
5
  gem "yard", "~> 0.6.4"
@@ -9,4 +7,5 @@ group :development do
9
7
  gem "bundler", "~> 1.0.0"
10
8
  gem "jeweler", "~> 1.5.2"
11
9
  gem "rake", "~> 0.8.7"
10
+ gem "closure-compiler", "~> 1.0.0"
12
11
  end
@@ -75,9 +75,9 @@ Rapper provides helper methods to generate HTML include tags for your assets in
75
75
 
76
76
  Rapper's view helpers respect your `bundle` setting. If it is `true`, a singe include tag for the joined asset will be returned. If bundling is `false`, it will return include tags for every component file of the asset (as a single string).
77
77
 
78
- Rapper provides helper methods for each definition type. For instance, if you have "javascripts.yml" and "stylesheets.yml" definition files, Rapper will provide `rapper_javascripts_tag` and `rapper_stylesheets_tag` helper methods. Just pass the name of the asset to the helper method as a symbol and the correct HTML will be returned:
78
+ Rapper provides helper methods for each definition type. For instance, if you have "javascripts.yml" and "stylesheets.yml" definition files, Rapper will provide `include_javascripts` and `include_stylesheets` helper methods. Just pass the name of the asset to the helper method as a symbol and the correct HTML will be returned:
79
79
 
80
- rapper_stylesheets_tag :mootools
80
+ include_stylesheets :mootools
81
81
  # <script src="/javascripts/assets/mootools.js"></script>
82
82
 
83
83
  ## Versioning
@@ -126,6 +126,7 @@ Rapper's got a Gemfile. You know what to do.
126
126
 
127
127
  ## Version history
128
128
 
129
+ * **0.3.0** - Remove hard Closure Compiler dependency (it will still need to be installed to compress JS), shorter view helper method names.
129
130
  * **0.2.4** - Add tag_paths() to get all file paths for a given asset.
130
131
  * **0.2.2** - Change tag_root behavior to not add `.../assets` path suffix when a `destination_root` is defined.
131
132
  * **0.2.1** - Add tag_files() to get all file paths for a given asset.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.3.0
@@ -1,6 +1,8 @@
1
1
  require File.expand_path( File.dirname( __FILE__ ) + "/../yui/css_compressor.rb" )
2
- require "closure-compiler"
3
2
  require 'fileutils'
3
+ begin
4
+ require "closure-compiler"
5
+ rescue LoadError; end
4
6
 
5
7
  module Rapper
6
8
  # Compression handlers for various types of assets. And by "various" I mean
@@ -79,6 +81,8 @@ module Rapper
79
81
  register ".css"
80
82
 
81
83
  def self.do_compress( file_path, opts={} )
84
+ return unless compressor_available?
85
+
82
86
  css = read_file( file_path )
83
87
  css = YUI::CSS.compress( css )
84
88
  destination = writable_file( file_path )
@@ -87,6 +91,12 @@ module Rapper
87
91
  destination.write "\n"
88
92
  destination.close
89
93
  end
94
+
95
+ def self.compressor_available?
96
+ YUI::CSS.is_a?( Class )
97
+ rescue NameError
98
+ false
99
+ end
90
100
  end
91
101
 
92
102
  # Uses Google's Closure Compiler (via DocumentCloud's closure-compiler gem)
@@ -95,6 +105,8 @@ module Rapper
95
105
  register ".js"
96
106
 
97
107
  def self.do_compress( file_path, opts={} )
108
+ return unless closure_available?
109
+
98
110
  closure = Closure::Compiler.new( opts )
99
111
 
100
112
  js = read_file( file_path )
@@ -104,6 +116,12 @@ module Rapper
104
116
  destination.write "\n"
105
117
  destination.close
106
118
  end
119
+
120
+ def self.closure_available?
121
+ Closure::Compiler.is_a?( Class )
122
+ rescue NameError
123
+ false
124
+ end
107
125
  end
108
126
 
109
127
  end
@@ -17,5 +17,8 @@ module Rapper
17
17
  # Raised when attempting to compress a file with an extension that Rapper
18
18
  # doesn't recognize.
19
19
  class UnknownFileExtension < StandardError; end
20
+
21
+ # Raised when an asset definition refers to a file that doesn't exist.
22
+ class MissingComponentFile < StandardError; end
20
23
  end
21
24
  end
@@ -3,7 +3,7 @@ module Rapper
3
3
  module HelperSetup
4
4
 
5
5
  # Loads view helpers for any/all available web frameworks available.
6
- # TODO: Refactor.
6
+ # TODO: Clean up.
7
7
  def setup_helpers
8
8
  if Rapper::ViewHelpers.const_defined?( :RAPPER )
9
9
  Rapper::ViewHelpers.send( :remove_const, :RAPPER )
@@ -25,13 +25,13 @@ module Rapper
25
25
 
26
26
  def self.included( klass )
27
27
  klass.class_eval do
28
- # Define a "rapper_FOO_tag" method for each definition type. For
29
- # example, if you have "stylesheets" and "javascripts" definitions,
30
- # you'll have "rapper_stylesheets_tag( name )" and
31
- # "rapper_javascripts_tag( name )" methods.
28
+ # Define a "include_FOO" method for each definition type. For example,
29
+ # if you have "stylesheets" and "javascripts" definitions, you'll have
30
+ # "include_stylesheets( name )" and "include_javascripts( name )"
31
+ # methods.
32
32
  RAPPER.definitions.each do |type, definition|
33
33
  tag_method = RAPPER.tag_method_for_type( type )
34
- define_method "rapper_#{type}_tag".to_sym do |name|
34
+ define_method "include_#{type}".to_sym do |name|
35
35
  RAPPER.send( tag_method, type, name )
36
36
  end
37
37
  end
@@ -40,6 +40,19 @@ module Rapper
40
40
  self.get_tag( CssTag, type, name )
41
41
  end
42
42
 
43
+ # Same as `tag_files`, but includes version query string if needed.
44
+ def tag_paths( type, name )
45
+ definition = @definitions[type]
46
+ if self.get_config( 'version' )
47
+ version = definition.get_version( name )
48
+ tag_files( type, name ).map{|path| "#{path}?v=#{version}"}
49
+ else
50
+ tag_files( type, name )
51
+ end
52
+ end
53
+
54
+ protected
55
+
43
56
  # Get all paths for a given asset. If bundling is turned on, a one-item
44
57
  # array is returned containing the path to the asset file. Otherwise, an
45
58
  # array of all component paths for the asset are returned.
@@ -58,19 +71,13 @@ module Rapper
58
71
  end
59
72
  end
60
73
 
61
- # Same as `tag_files`, but includes version query string if needed.
62
- def tag_paths( type, name )
63
- definition = @definitions[type]
64
- if self.get_config( 'version' )
65
- version = definition.get_version( name )
66
- tag_files( type, name ).map{|path| "#{path}?v=#{version}"}
67
- else
68
- tag_files( type, name )
69
- end
70
- end
71
-
72
- protected
73
-
74
+ # Get the HTML for an asset.
75
+ #
76
+ # @param [Rapper::HtmlTags::Tag] klass The HTML generator class to use.
77
+ #
78
+ # @param [String] type Asset type.
79
+ #
80
+ # @param [String] name Asset name.
74
81
  def get_tag( klass, type, name )
75
82
  definition = @definitions[type]
76
83
  style = self.get_config( 'tag_style' ).to_sym
@@ -15,8 +15,13 @@ module Rapper
15
15
  #
16
16
  # @param [String] destination_file Destination for concatenated output.
17
17
  def join_files( source_files, destination_file )
18
- source_files = Array( source_files ).uniq.join( " " )
19
- system "cat #{source_files} > #{destination_file}"
18
+ source_files = Array( source_files ).uniq
19
+ source_files.any? do |path|
20
+ unless File.exists?( path )
21
+ raise Rapper::Errors::MissingComponentFile, "#{path} doesn't exist."
22
+ end
23
+ end
24
+ system "cat #{source_files.join( " " )} > #{destination_file}"
20
25
  end
21
26
 
22
27
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rapper}
8
- s.version = "0.2.4"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tyson Tate"]
12
- s.date = %q{2011-04-02}
12
+ s.date = %q{2011-04-05}
13
13
  s.description = %q{Static asset packager and compressor with versioning and built-in view helpers. Compresses files only when they need compressing.}
14
14
  s.email = %q{tyson@tysontate.com}
15
15
  s.extra_rdoc_files = [
@@ -41,6 +41,7 @@ Gem::Specification.new do |s|
41
41
  "spec/fixtures/config/asset_definitions/base/javascripts.yml",
42
42
  "spec/fixtures/config/asset_definitions/base/stylesheets.yml",
43
43
  "spec/fixtures/config/asset_definitions/custom_destination/javascripts.yml",
44
+ "spec/fixtures/config/asset_definitions/missing_file/stylesheets.yml",
44
45
  "spec/fixtures/config/assets.yml",
45
46
  "spec/fixtures/javascripts/simple_1.js",
46
47
  "spec/fixtures/javascripts/simple_2.js",
@@ -133,30 +134,30 @@ Gem::Specification.new do |s|
133
134
  s.specification_version = 3
134
135
 
135
136
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
136
- s.add_runtime_dependency(%q<closure-compiler>, ["~> 1.0.0"])
137
137
  s.add_development_dependency(%q<rspec>, ["~> 1.3.1"])
138
138
  s.add_development_dependency(%q<yard>, ["~> 0.6.4"])
139
139
  s.add_development_dependency(%q<bluecloth>, ["~> 2.0.10"])
140
140
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
141
141
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
142
142
  s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
143
+ s.add_development_dependency(%q<closure-compiler>, ["~> 1.0.0"])
143
144
  else
144
- s.add_dependency(%q<closure-compiler>, ["~> 1.0.0"])
145
145
  s.add_dependency(%q<rspec>, ["~> 1.3.1"])
146
146
  s.add_dependency(%q<yard>, ["~> 0.6.4"])
147
147
  s.add_dependency(%q<bluecloth>, ["~> 2.0.10"])
148
148
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
149
149
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
150
150
  s.add_dependency(%q<rake>, ["~> 0.8.7"])
151
+ s.add_dependency(%q<closure-compiler>, ["~> 1.0.0"])
151
152
  end
152
153
  else
153
- s.add_dependency(%q<closure-compiler>, ["~> 1.0.0"])
154
154
  s.add_dependency(%q<rspec>, ["~> 1.3.1"])
155
155
  s.add_dependency(%q<yard>, ["~> 0.6.4"])
156
156
  s.add_dependency(%q<bluecloth>, ["~> 2.0.10"])
157
157
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
158
158
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
159
159
  s.add_dependency(%q<rake>, ["~> 0.8.7"])
160
+ s.add_dependency(%q<closure-compiler>, ["~> 1.0.0"])
160
161
  end
161
162
  end
162
163
 
@@ -0,0 +1,10 @@
1
+ --- !omap
2
+ - root: spec/fixtures/stylesheets
3
+ - tag_root: /stylesheets
4
+ - suffix: css
5
+ - assets: !omap
6
+ - multiple_files: !omap
7
+ - files:
8
+ - simple_1
9
+ - foobar_doesnt_exist
10
+ - version: 1e17
@@ -32,6 +32,9 @@ test_custom_destination:
32
32
  definition_root: spec/fixtures/config/asset_definitions/custom_destination
33
33
  bundle: true
34
34
  compress: false
35
+ test_missing_file:
36
+ <<: *base
37
+ definition_root: spec/fixtures/config/asset_definitions/missing_file
35
38
  test_tag_paths:
36
39
  <<: *base
37
40
  bundle: true
@@ -67,16 +67,6 @@ describe Rapper do
67
67
  ]
68
68
  ]
69
69
  end
70
-
71
- it "provides tag files and paths" do
72
- rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_tag_paths" )
73
- rapper.tag_files( "javascripts", "multiple_files" ).should == ["/javascripts/assets/multiple_files.js"]
74
- rapper.tag_paths( "javascripts", "multiple_files" ).should == ["/javascripts/assets/multiple_files.js?v=f3d9"]
75
-
76
- rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_tag_paths_no_bundle" )
77
- rapper.tag_files( "javascripts", "multiple_files" ).should == ["/javascripts/simple_1.js", "/javascripts/simple_2.js"]
78
- rapper.tag_paths( "javascripts", "multiple_files" ).should == ["/javascripts/simple_1.js?v=f3d9", "/javascripts/simple_2.js?v=f3d9"]
79
- end
80
70
  end
81
71
 
82
72
  describe "logging" do
@@ -147,8 +137,21 @@ describe Rapper do
147
137
  Dir[ "tmp/custom_destination/*" ].should == ["tmp/custom_destination/multiple_files.js"]
148
138
  end
149
139
 
150
- it "doesn't use the defaut .../assets tag root" do
151
- @rapper.js_tag( "javascripts", "multiple_files" ).should == "<script src=\"/javascripts/multiple_files.js?v=f3d9\"></script>"
140
+ it "doesn't use the defaut '/assets' tag root" do
141
+ @rapper.js_tag( "javascripts", "multiple_files" ).should ==
142
+ "<script src=\"/javascripts/multiple_files.js?v=f3d9\"></script>"
143
+ end
144
+ end
145
+
146
+ describe "misc. methods" do
147
+ it "provides tag files and paths" do
148
+ rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_tag_paths" )
149
+ rapper.tag_paths( "javascripts", "multiple_files" ).should ==
150
+ ["/javascripts/assets/multiple_files.js?v=f3d9"]
151
+
152
+ rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_tag_paths_no_bundle" )
153
+ rapper.tag_paths( "javascripts", "multiple_files" ).should ==
154
+ ["/javascripts/simple_1.js?v=f3d9", "/javascripts/simple_2.js?v=f3d9"]
152
155
  end
153
156
  end
154
157
 
@@ -173,7 +176,6 @@ describe Rapper do
173
176
  rapper.package
174
177
 
175
178
  paths.each do |path|
176
-
177
179
  # Produces the same exact individual files
178
180
  file_names( path[:results] ).should == file_names( path[:expecteds] )
179
181
  # Contents are all the same
@@ -191,7 +193,13 @@ describe Rapper do
191
193
  end
192
194
 
193
195
  describe "bundling" do
194
- it "raises an error if a file doesn't exist"
196
+ it "raises an error if a file doesn't exist" do
197
+ rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_missing_file" )
198
+
199
+ lambda do
200
+ rapper.package
201
+ end.should raise_error( Rapper::Errors::MissingComponentFile )
202
+ end
195
203
  end
196
204
 
197
205
  describe "view helpers" do
@@ -204,40 +212,58 @@ describe Rapper do
204
212
 
205
213
  it "returns tags for component files when bundling is off" do
206
214
  Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_no_bundle" )
207
- @controller.rapper_stylesheets_tag( :single_file ).should == "<link rel=\"stylesheet\" href=\"/stylesheets/simple_1.css\">"
208
- @controller.rapper_stylesheets_tag( :multiple_files ).should == "<link rel=\"stylesheet\" href=\"/stylesheets/simple_1.css\">\n<link rel=\"stylesheet\" href=\"/stylesheets/simple_2.css\">"
209
- @controller.rapper_javascripts_tag( :single_file ).should == "<script src=\"/javascripts/simple_1.js\"></script>"
210
- @controller.rapper_javascripts_tag( :multiple_files ).should == "<script src=\"/javascripts/simple_1.js\"></script>\n<script src=\"/javascripts/simple_2.js\"></script>"
215
+ @controller.include_stylesheets( :single_file ).should ==
216
+ "<link rel=\"stylesheet\" href=\"/stylesheets/simple_1.css\">"
217
+ @controller.include_stylesheets( :multiple_files ).should ==
218
+ "<link rel=\"stylesheet\" href=\"/stylesheets/simple_1.css\">\n<link rel=\"stylesheet\" href=\"/stylesheets/simple_2.css\">"
219
+ @controller.include_javascripts( :single_file ).should ==
220
+ "<script src=\"/javascripts/simple_1.js\"></script>"
221
+ @controller.include_javascripts( :multiple_files ).should ==
222
+ "<script src=\"/javascripts/simple_1.js\"></script>\n<script src=\"/javascripts/simple_2.js\"></script>"
211
223
  end
212
224
 
213
225
  it "returns tags for asset when bundling is on" do
214
226
  Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test" )
215
- @controller.rapper_stylesheets_tag( :single_file ).should == "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\">"
216
- @controller.rapper_stylesheets_tag( :multiple_files ).should == "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\">"
217
- @controller.rapper_javascripts_tag( :single_file ).should == "<script type=\"text/javascript\" src=\"/javascripts/assets/single_file.js\"></script>"
218
- @controller.rapper_javascripts_tag( :multiple_files ).should == "<script type=\"text/javascript\" src=\"/javascripts/assets/multiple_files.js\"></script>"
227
+ @controller.include_stylesheets( :single_file ).should ==
228
+ "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\">"
229
+ @controller.include_stylesheets( :multiple_files ).should ==
230
+ "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\">"
231
+ @controller.include_javascripts( :single_file ).should ==
232
+ "<script type=\"text/javascript\" src=\"/javascripts/assets/single_file.js\"></script>"
233
+ @controller.include_javascripts( :multiple_files ).should ==
234
+ "<script type=\"text/javascript\" src=\"/javascripts/assets/multiple_files.js\"></script>"
219
235
  end
220
236
 
221
237
  it "can return xhtml tags" do
222
238
  Rapper::Engine.new( "spec/fixtures/config/assets.yml", "xhtml_tags" )
223
- @controller.rapper_stylesheets_tag( :single_file ).should == "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\" />"
224
- @controller.rapper_stylesheets_tag( :multiple_files ).should == "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\" />"
225
- @controller.rapper_javascripts_tag( :single_file ).should == "<script type=\"text/javascript\" src=\"/javascripts/assets/single_file.js\"></script>"
226
- @controller.rapper_javascripts_tag( :multiple_files ).should == "<script type=\"text/javascript\" src=\"/javascripts/assets/multiple_files.js\"></script>"
239
+ @controller.include_stylesheets( :single_file ).should ==
240
+ "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\" />"
241
+ @controller.include_stylesheets( :multiple_files ).should ==
242
+ "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\" />"
243
+ @controller.include_javascripts( :single_file ).should ==
244
+ "<script type=\"text/javascript\" src=\"/javascripts/assets/single_file.js\"></script>"
245
+ @controller.include_javascripts( :multiple_files ).should ==
246
+ "<script type=\"text/javascript\" src=\"/javascripts/assets/multiple_files.js\"></script>"
227
247
  end
228
248
 
229
249
  it "can return html5 tags" do
230
250
  Rapper::Engine.new( "spec/fixtures/config/assets.yml", "html5_tags" )
231
- @controller.rapper_stylesheets_tag( :single_file ).should == "<link rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\">"
232
- @controller.rapper_stylesheets_tag( :multiple_files ).should == "<link rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\">"
233
- @controller.rapper_javascripts_tag( :single_file ).should == "<script src=\"/javascripts/assets/single_file.js\"></script>"
234
- @controller.rapper_javascripts_tag( :multiple_files ).should == "<script src=\"/javascripts/assets/multiple_files.js\"></script>"
251
+ @controller.include_stylesheets( :single_file ).should ==
252
+ "<link rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css\">"
253
+ @controller.include_stylesheets( :multiple_files ).should ==
254
+ "<link rel=\"stylesheet\" href=\"/stylesheets/assets/multiple_files.css\">"
255
+ @controller.include_javascripts( :single_file ).should ==
256
+ "<script src=\"/javascripts/assets/single_file.js\"></script>"
257
+ @controller.include_javascripts( :multiple_files ).should ==
258
+ "<script src=\"/javascripts/assets/multiple_files.js\"></script>"
235
259
  end
236
260
 
237
261
  it "adds a version number if versioning is on" do
238
262
  Rapper::Engine.new( "spec/fixtures/config/assets.yml", "versions" )
239
- @controller.rapper_stylesheets_tag( :single_file ).should == "<link rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css?v=1e17\">"
240
- @controller.rapper_javascripts_tag( :single_file ).should == "<script src=\"/javascripts/assets/single_file.js?v=98bc\"></script>"
263
+ @controller.include_stylesheets( :single_file ).should ==
264
+ "<link rel=\"stylesheet\" href=\"/stylesheets/assets/single_file.css?v=1e17\">"
265
+ @controller.include_javascripts( :single_file ).should ==
266
+ "<script src=\"/javascripts/assets/single_file.js?v=98bc\"></script>"
241
267
  end
242
268
  end
243
269
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rapper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tyson Tate
@@ -15,28 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-02 00:00:00 -07:00
18
+ date: 2011-04-05 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
23
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 23
29
- segments:
30
- - 1
31
- - 0
32
- - 0
33
- version: 1.0.0
34
- type: :runtime
35
- requirement: *id001
36
- name: closure-compiler
37
- - !ruby/object:Gem::Dependency
38
- prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
24
  none: false
41
25
  requirements:
42
26
  - - ~>
@@ -48,11 +32,11 @@ dependencies:
48
32
  - 1
49
33
  version: 1.3.1
50
34
  type: :development
51
- requirement: *id002
35
+ requirement: *id001
52
36
  name: rspec
53
37
  - !ruby/object:Gem::Dependency
54
38
  prerelease: false
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
56
40
  none: false
57
41
  requirements:
58
42
  - - ~>
@@ -64,11 +48,11 @@ dependencies:
64
48
  - 4
65
49
  version: 0.6.4
66
50
  type: :development
67
- requirement: *id003
51
+ requirement: *id002
68
52
  name: yard
69
53
  - !ruby/object:Gem::Dependency
70
54
  prerelease: false
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
72
56
  none: false
73
57
  requirements:
74
58
  - - ~>
@@ -80,11 +64,11 @@ dependencies:
80
64
  - 10
81
65
  version: 2.0.10
82
66
  type: :development
83
- requirement: *id004
67
+ requirement: *id003
84
68
  name: bluecloth
85
69
  - !ruby/object:Gem::Dependency
86
70
  prerelease: false
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
88
72
  none: false
89
73
  requirements:
90
74
  - - ~>
@@ -96,11 +80,11 @@ dependencies:
96
80
  - 0
97
81
  version: 1.0.0
98
82
  type: :development
99
- requirement: *id005
83
+ requirement: *id004
100
84
  name: bundler
101
85
  - !ruby/object:Gem::Dependency
102
86
  prerelease: false
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
104
88
  none: false
105
89
  requirements:
106
90
  - - ~>
@@ -112,11 +96,11 @@ dependencies:
112
96
  - 2
113
97
  version: 1.5.2
114
98
  type: :development
115
- requirement: *id006
99
+ requirement: *id005
116
100
  name: jeweler
117
101
  - !ruby/object:Gem::Dependency
118
102
  prerelease: false
119
- version_requirements: &id007 !ruby/object:Gem::Requirement
103
+ version_requirements: &id006 !ruby/object:Gem::Requirement
120
104
  none: false
121
105
  requirements:
122
106
  - - ~>
@@ -128,8 +112,24 @@ dependencies:
128
112
  - 7
129
113
  version: 0.8.7
130
114
  type: :development
131
- requirement: *id007
115
+ requirement: *id006
132
116
  name: rake
117
+ - !ruby/object:Gem::Dependency
118
+ prerelease: false
119
+ version_requirements: &id007 !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ hash: 23
125
+ segments:
126
+ - 1
127
+ - 0
128
+ - 0
129
+ version: 1.0.0
130
+ type: :development
131
+ requirement: *id007
132
+ name: closure-compiler
133
133
  description: Static asset packager and compressor with versioning and built-in view helpers. Compresses files only when they need compressing.
134
134
  email: tyson@tysontate.com
135
135
  executables: []
@@ -164,6 +164,7 @@ files:
164
164
  - spec/fixtures/config/asset_definitions/base/javascripts.yml
165
165
  - spec/fixtures/config/asset_definitions/base/stylesheets.yml
166
166
  - spec/fixtures/config/asset_definitions/custom_destination/javascripts.yml
167
+ - spec/fixtures/config/asset_definitions/missing_file/stylesheets.yml
167
168
  - spec/fixtures/config/assets.yml
168
169
  - spec/fixtures/javascripts/simple_1.js
169
170
  - spec/fixtures/javascripts/simple_2.js