smart_asset 0.5.11 → 0.6.0
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.md +4 -10
- data/bin/compiler.jar +0 -0
- data/bin/yui.jar +0 -0
- data/lib/smart_asset.rb +14 -9
- data/smart_asset.gemspec +1 -1
- data/spec/fixtures/production_output.txt +2 -2
- data/spec/run +5 -5
- data/spec/smart_asset_spec.rb +9 -9
- metadata +133 -123
- data/package.json +0 -8
data/README.md
CHANGED
@@ -10,9 +10,9 @@ Features
|
|
10
10
|
|
11
11
|
Similar to <code>AssetPackager</code>, but with the following changes:
|
12
12
|
|
13
|
-
* Uses file size and
|
14
|
-
*
|
15
|
-
*
|
13
|
+
* Uses file size and hashing to determine if a new compressed package should be created
|
14
|
+
* Closure Compiler for javascript compression
|
15
|
+
* YUI Compressor for css compression
|
16
16
|
* Framework agnostic (adapters provided for Rails 2, Rails 3, Sinatra, and Stasis)
|
17
17
|
|
18
18
|
<a name="installation"></a>
|
@@ -26,12 +26,6 @@ Installation
|
|
26
26
|
gem install smart_asset
|
27
27
|
</pre>
|
28
28
|
|
29
|
-
### Install npm packages
|
30
|
-
|
31
|
-
<pre>
|
32
|
-
npm install uglify-js clean-css -g
|
33
|
-
</pre>
|
34
|
-
|
35
29
|
### Install
|
36
30
|
|
37
31
|
### Rails 2
|
@@ -157,7 +151,7 @@ You may use environment variables with the <code>smart\_asset</code> command to
|
|
157
151
|
|
158
152
|
<code>MODIFIED='12/1/2010 12:00'</code><br/>Use a default modified time other than Time.now for non-version controlled files
|
159
153
|
|
160
|
-
<code>WARN=1</code><br/>Get compression warnings
|
154
|
+
<code>WARN=1</code><br/>Get compression warnings
|
161
155
|
|
162
156
|
#### Example:
|
163
157
|
|
data/bin/compiler.jar
ADDED
Binary file
|
data/bin/yui.jar
ADDED
Binary file
|
data/lib/smart_asset.rb
CHANGED
@@ -73,20 +73,25 @@ class SmartAsset
|
|
73
73
|
tmp = "#{dest}/tmp.#{ext}"
|
74
74
|
File.open(tmp, 'w') { |f| f.write(data) }
|
75
75
|
puts "\nCreating #{package}..."
|
76
|
-
warning = ENV['WARN'] ? " -v" : nil
|
77
76
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
77
|
+
# Binary paths
|
78
|
+
bin = File.expand_path(File.dirname(__FILE__) + '/../bin')
|
79
|
+
compiler = bin + '/compiler.jar'
|
80
|
+
yui = bin + '/yui.jar'
|
82
81
|
|
83
82
|
if ext == 'js'
|
84
|
-
|
83
|
+
warning = ENV['WARN'] ? nil : " --warning_level QUIET"
|
84
|
+
cmd = "java -jar #{compiler} --js #{tmp} --js_output_file #{package}#{warning}"
|
85
85
|
elsif ext == 'css'
|
86
|
-
|
86
|
+
warning = ENV['WARN'] ? " -v" : nil
|
87
|
+
cmd = "java -jar #{yui} #{tmp} -o #{package}#{warning}"
|
87
88
|
end
|
89
|
+
|
88
90
|
puts cmd if ENV['DEBUG']
|
89
|
-
`#{cmd}`
|
91
|
+
cmd_output = `#{cmd}`
|
92
|
+
|
93
|
+
raise "Error running `#{cmd}`:\n#{cmd_output}" unless $?.success?
|
94
|
+
|
90
95
|
FileUtils.rm(tmp) unless ENV['DEBUG']
|
91
96
|
|
92
97
|
# Fix YUI compression issue
|
@@ -242,4 +247,4 @@ end
|
|
242
247
|
|
243
248
|
require "smart_asset/adapters/rails#{Rails.version[0..0]}" if defined?(Rails)
|
244
249
|
require "smart_asset/adapters/sinatra" if defined?(Sinatra)
|
245
|
-
require "smart_asset/adapters/stasis" if defined?(Stasis)
|
250
|
+
require "smart_asset/adapters/stasis" if defined?(Stasis)
|
data/smart_asset.gemspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
<script src="/packaged/
|
2
|
-
<link href="/packaged/
|
1
|
+
<script src="/packaged/382823ce_package.js"></script>
|
2
|
+
<link href="/packaged/fa00472f_package.css" media="screen" rel="stylesheet" />
|
data/spec/run
CHANGED
@@ -16,13 +16,13 @@
|
|
16
16
|
# puts "\n"
|
17
17
|
|
18
18
|
ENV['RAILS'] = '3'
|
19
|
-
ENV['RAILS_ENV'] = 'development'
|
20
|
-
system "spec -f n -c spec"
|
19
|
+
# ENV['RAILS_ENV'] = 'development'
|
20
|
+
# system "spec -f n -c spec"
|
21
21
|
|
22
|
-
|
22
|
+
puts "\n"
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
ENV['RAILS_ENV'] = 'production'
|
25
|
+
system "spec -f n -c spec"
|
26
26
|
|
27
27
|
# ENV.delete 'RAILS'
|
28
28
|
# ENV.delete 'RAILS_ENV'
|
data/spec/smart_asset_spec.rb
CHANGED
@@ -4,7 +4,7 @@ unless FrameworkFixture.framework
|
|
4
4
|
describe SmartAsset do
|
5
5
|
|
6
6
|
include SmartAsset::Helper
|
7
|
-
|
7
|
+
|
8
8
|
before(:all) do
|
9
9
|
@config = "spec/fixtures/assets.yml"
|
10
10
|
@dest = "#{$root}/spec/fixtures/assets/compressed"
|
@@ -13,11 +13,11 @@ unless FrameworkFixture.framework
|
|
13
13
|
package.js
|
14
14
|
)
|
15
15
|
@versions = %w(
|
16
|
-
|
17
|
-
|
16
|
+
fa00472f
|
17
|
+
382823ce
|
18
18
|
)
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
describe :load_config do
|
22
22
|
|
23
23
|
before(:all) do
|
@@ -79,7 +79,7 @@ unless FrameworkFixture.framework
|
|
79
79
|
SmartAsset.sources.should == {"javascripts"=>"javascripts", "stylesheets"=>"stylesheets"}
|
80
80
|
end
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
describe :binary do
|
84
84
|
describe 'no compressed assets' do
|
85
85
|
|
@@ -203,7 +203,7 @@ unless FrameworkFixture.framework
|
|
203
203
|
end
|
204
204
|
|
205
205
|
it "should rewrite javascript package with underscore code first" do
|
206
|
-
File.size(path = "#{@dest}/
|
206
|
+
File.size(path = "#{@dest}/4922c055_#{@files[1]}").should > 0
|
207
207
|
js = File.read(path)
|
208
208
|
js.index('jQuery').should > js.index('VERSION')
|
209
209
|
js.include?('jQuery').should == true
|
@@ -231,7 +231,7 @@ unless FrameworkFixture.framework
|
|
231
231
|
end
|
232
232
|
|
233
233
|
it "should rewrite javascript package with only jquery" do
|
234
|
-
File.size(path = "#{@dest}/
|
234
|
+
File.size(path = "#{@dest}/5b838e70_#{@files[1]}").should > 0
|
235
235
|
js = File.read(path)
|
236
236
|
js.include?('jQuery').should == true
|
237
237
|
js.include?('VERSION').should == false
|
@@ -267,7 +267,7 @@ unless FrameworkFixture.framework
|
|
267
267
|
before(:all) do
|
268
268
|
@modified = Time.parse('12-01-2010 08:00:00 UTC')
|
269
269
|
ENV['MODIFIED'] = @modified.to_s
|
270
|
-
@package = "#{@dest}/
|
270
|
+
@package = "#{@dest}/73af2a89_#{@files[1]}"
|
271
271
|
@untracked = "#{$root}/spec/fixtures/assets/javascripts/untracked.js"
|
272
272
|
|
273
273
|
File.open(@untracked, 'w') { |f| f.write("var untracked = true;") }
|
@@ -299,7 +299,7 @@ unless FrameworkFixture.framework
|
|
299
299
|
end
|
300
300
|
end
|
301
301
|
end
|
302
|
-
|
302
|
+
|
303
303
|
describe :path do
|
304
304
|
|
305
305
|
describe "development" do
|
metadata
CHANGED
@@ -1,159 +1,161 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_asset
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 0.6.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Winton Welsh
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2014-07-17 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: framework_fixture
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :development
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rack-test
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
33
24
|
none: false
|
34
|
-
requirements:
|
35
|
-
- -
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
38
32
|
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rack-test
|
39
36
|
prerelease: false
|
40
|
-
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: rake
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
49
38
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
54
46
|
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
55
50
|
prerelease: false
|
56
|
-
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rails
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
65
52
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
70
60
|
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rails
|
71
64
|
prerelease: false
|
72
|
-
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '3.0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: rspec
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
81
66
|
none: false
|
82
|
-
requirements:
|
67
|
+
requirements:
|
83
68
|
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 7
|
71
|
+
segments:
|
72
|
+
- 3
|
73
|
+
- 0
|
74
|
+
version: "3.0"
|
86
75
|
type: :development
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: rspec
|
87
79
|
prerelease: false
|
88
|
-
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
81
|
none: false
|
90
|
-
requirements:
|
82
|
+
requirements:
|
91
83
|
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '1.0'
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 15
|
86
|
+
segments:
|
87
|
+
- 1
|
88
|
+
- 0
|
89
|
+
version: "1.0"
|
102
90
|
type: :development
|
91
|
+
version_requirements: *id005
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: sinatra
|
103
94
|
prerelease: false
|
104
|
-
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
96
|
none: false
|
106
|
-
requirements:
|
97
|
+
requirements:
|
107
98
|
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
requirements:
|
115
|
-
- - '='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.2.0.pre
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 15
|
101
|
+
segments:
|
102
|
+
- 1
|
103
|
+
- 0
|
104
|
+
version: "1.0"
|
118
105
|
type: :development
|
106
|
+
version_requirements: *id006
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: stasis
|
119
109
|
prerelease: false
|
120
|
-
|
110
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
111
|
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
112
|
+
requirements:
|
113
|
+
- - "="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
hash: -354405171
|
116
|
+
segments:
|
117
|
+
- 0
|
118
|
+
- 2
|
119
|
+
- 0
|
120
|
+
- pre
|
125
121
|
version: 0.2.0.pre
|
126
|
-
|
122
|
+
type: :development
|
123
|
+
version_requirements: *id007
|
124
|
+
- !ruby/object:Gem::Dependency
|
127
125
|
name: change
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
134
|
-
type: :runtime
|
135
126
|
prerelease: false
|
136
|
-
|
127
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
137
128
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
hash: 3
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
version: "0"
|
136
|
+
type: :runtime
|
137
|
+
version_requirements: *id008
|
142
138
|
description: Smart asset packaging for Rails, Sinatra, and Stasis.
|
143
|
-
email:
|
139
|
+
email:
|
144
140
|
- mail@wintoni.us
|
145
|
-
executables:
|
141
|
+
executables:
|
142
|
+
- compiler.jar
|
146
143
|
- smart_asset
|
144
|
+
- yui.jar
|
147
145
|
extensions: []
|
146
|
+
|
148
147
|
extra_rdoc_files: []
|
149
|
-
|
148
|
+
|
149
|
+
files:
|
150
150
|
- .gitignore
|
151
151
|
- .travis.yml
|
152
152
|
- Gemfile
|
153
153
|
- LICENSE
|
154
154
|
- README.md
|
155
155
|
- Rakefile
|
156
|
+
- bin/compiler.jar
|
156
157
|
- bin/smart_asset
|
158
|
+
- bin/yui.jar
|
157
159
|
- lib/smart_asset.rb
|
158
160
|
- lib/smart_asset/adapters/rails2.rb
|
159
161
|
- lib/smart_asset/adapters/rails3.rb
|
@@ -161,7 +163,6 @@ files:
|
|
161
163
|
- lib/smart_asset/adapters/stasis.rb
|
162
164
|
- lib/smart_asset/helper.rb
|
163
165
|
- lib/smart_asset/recipes.rb
|
164
|
-
- package.json
|
165
166
|
- recipes/smart_asset.rb
|
166
167
|
- smart_asset.gemspec
|
167
168
|
- spec/fixtures/all_frameworks/assets.yml
|
@@ -194,29 +195,38 @@ files:
|
|
194
195
|
- spec/spec_helper.rb
|
195
196
|
homepage: http://github.com/winton/smart_asset
|
196
197
|
licenses: []
|
198
|
+
|
197
199
|
post_install_message:
|
198
200
|
rdoc_options: []
|
199
|
-
|
201
|
+
|
202
|
+
require_paths:
|
200
203
|
- lib
|
201
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
204
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
202
205
|
none: false
|
203
|
-
requirements:
|
204
|
-
- -
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
|
207
|
-
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
hash: 3
|
210
|
+
segments:
|
211
|
+
- 0
|
212
|
+
version: "0"
|
213
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
214
|
none: false
|
209
|
-
requirements:
|
210
|
-
- -
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
|
215
|
+
requirements:
|
216
|
+
- - ">="
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
hash: 3
|
219
|
+
segments:
|
220
|
+
- 0
|
221
|
+
version: "0"
|
213
222
|
requirements: []
|
223
|
+
|
214
224
|
rubyforge_project:
|
215
|
-
rubygems_version: 1.8.
|
225
|
+
rubygems_version: 1.8.15
|
216
226
|
signing_key:
|
217
227
|
specification_version: 3
|
218
228
|
summary: Smart asset packaging for Rails, Sinatra, and Stasis
|
219
|
-
test_files:
|
229
|
+
test_files:
|
220
230
|
- spec/fixtures/all_frameworks/assets.yml
|
221
231
|
- spec/fixtures/all_frameworks/test.html.erb
|
222
232
|
- spec/fixtures/assets.yml
|