rack-sprocketize 0.4.0 → 0.4.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.md +67 -41
- data/lib/rack/sprocketize/version.rb +1 -1
- data/rack-sprocketize.gemspec +12 -11
- metadata +53 -49
data/README.md
CHANGED
@@ -1,83 +1,109 @@
|
|
1
|
-
|
1
|
+
Rack::Sprocketize
|
2
|
+
=================
|
2
3
|
|
3
4
|
Rack::Sprocketize is a piece of Rack Middleware which uses [Sprockets](http://getsprockets.org/) to concatenate javascript files and then optionally compresses them. In a development environment, the files will be sprocketized on each request if there have been changes to the source files. In a production environment, the files will only be sprocketized one time, and only if there have been changes. Also, in a production environment, the files will be compressed by whichever javascript compressor is available.
|
4
5
|
|
5
|
-
|
6
|
+
Installation
|
7
|
+
------------
|
6
8
|
|
7
|
-
|
9
|
+
``` bash
|
10
|
+
$ gem install rack-sprocketize
|
11
|
+
```
|
8
12
|
|
9
|
-
|
13
|
+
Basic Usage
|
14
|
+
-----------
|
10
15
|
|
11
16
|
In a Rack based app, use Rack::Sprocketize just like any other middleware, passing options if necessary.
|
12
17
|
|
13
|
-
|
14
|
-
|
18
|
+
``` ruby
|
19
|
+
require 'rack-sprocketize'
|
20
|
+
use Rack::Sprocketize, :always_compress => true
|
21
|
+
```
|
15
22
|
|
16
23
|
In a Rails 3 app, Rack::Sprocketize is automatically included in the middleware stack, so all you need to worry about is configuration.
|
24
|
+
|
25
|
+
``` ruby
|
26
|
+
# Gemfile
|
27
|
+
gem 'rack-sprocketize'
|
28
|
+
|
29
|
+
# config/application.rb
|
30
|
+
config.sprocketize.always_compress = true
|
31
|
+
```
|
17
32
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
# config/application.rb
|
22
|
-
config.sprocketize.always_compress = true
|
23
|
-
|
24
|
-
### Sprocketizing
|
33
|
+
Sprocketizing
|
34
|
+
-------------
|
25
35
|
|
26
36
|
Rack::Sprocketize takes each file in the given `:source_path` (`'app/javascripts'` by default) and uses Sprockets to include any other required files. Then it outputs the results in the `:output_path` (`'public/javascripts` by default). Also, files that begin with `'_'` will not be sprocketized and will essentially be treated like partials.
|
27
37
|
|
28
38
|
So, given the following files in an app:
|
29
39
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
40
|
+
``` ruby
|
41
|
+
# app/javascripts/main.js
|
42
|
+
//= require "_partial"
|
43
|
+
|
44
|
+
# app/javascripts/_partial.js
|
45
|
+
var hello = 'world';
|
46
|
+
|
47
|
+
# app/javascripts/plugin.js
|
48
|
+
var plugin = 'blah';
|
49
|
+
```
|
38
50
|
|
39
51
|
Rack::Sprocketize will sprocketize them into `:output_path` like this:
|
40
52
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
53
|
+
``` ruby
|
54
|
+
# public/javascripts/main.js
|
55
|
+
var hello = 'world';
|
56
|
+
|
57
|
+
# public/javascripts/plugin.js
|
58
|
+
var plugin = 'blah';
|
59
|
+
```
|
46
60
|
|
47
61
|
Notice how the files weren't all concatenated into one file. You use Sprockets' `//= require` syntax to control how the files will be concatenated.
|
48
62
|
|
49
63
|
Both the `:source_path` and `:output_path` can be customized when setting up Rack::Sprocketize:
|
50
64
|
|
51
|
-
|
65
|
+
``` ruby
|
66
|
+
use Rack::Sprocketize, :source_path => 'js', :output_path => 'public/js'
|
67
|
+
```
|
52
68
|
|
53
|
-
|
69
|
+
Compression
|
70
|
+
-----------
|
54
71
|
|
55
72
|
Rack::Sprocketize determines which javascript compressor you want to use based on which one has been required.
|
56
73
|
|
57
|
-
|
58
|
-
|
59
|
-
|
74
|
+
``` ruby
|
75
|
+
require 'packr'
|
76
|
+
use Rack::Sprocketize
|
77
|
+
# would use Packr
|
78
|
+
```
|
60
79
|
|
61
80
|
or in Rails:
|
62
81
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
82
|
+
``` ruby
|
83
|
+
# Gemfile
|
84
|
+
gem 'jsmin'
|
85
|
+
|
86
|
+
# config/application.rb
|
87
|
+
config.middleware.use Rack::Sprocketize
|
88
|
+
# would use JSMin
|
89
|
+
```
|
69
90
|
|
70
91
|
To pass options to the javascript compressor just use the `:compression_options` option:
|
71
92
|
|
72
|
-
|
73
|
-
|
93
|
+
``` ruby
|
94
|
+
require 'packr'
|
95
|
+
use Rack::Sprocketize, :compression_options => { :shrink_vars => true }
|
96
|
+
```
|
74
97
|
|
75
98
|
By default, the files are only compressed in a production environment. If for some reason you want them to always be compressed, pass the `:always_compress` option:
|
76
99
|
|
77
|
-
|
100
|
+
``` ruby
|
101
|
+
use Rack::Sprocketize, :always_compress => true
|
102
|
+
```
|
78
103
|
|
79
104
|
Any files suffixed with `'.min'` or `'-min'` will not be compressed. For example, `'app/javascripts/jquery.min.js'` would not be re-compressed when it is sprocketized.
|
80
105
|
|
81
|
-
|
106
|
+
Copyright
|
107
|
+
---------
|
82
108
|
|
83
109
|
Copyright (c) 2011 [Peter Browne](http://petebrowne.com). See LICENSE for details.
|
data/rack-sprocketize.gemspec
CHANGED
@@ -6,23 +6,24 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = 'rack-sprocketize'
|
7
7
|
s.version = Rack::Sprocketize::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors =
|
10
|
-
s.email =
|
9
|
+
s.authors = ['Pete Browne']
|
10
|
+
s.email = ['me@petebrowne.com']
|
11
11
|
s.homepage = 'http://github.com/petebrowne/rack-sprocketize'
|
12
12
|
s.summary = %(Rack::Sprocketize is a piece of Rack Middleware which uses Sprockets to concatenate javascript files and then optionally compresses them.)
|
13
13
|
s.description = %(Rack::Sprocketize is a piece of Rack Middleware which uses Sprockets to concatenate javascript files and then optionally compresses them. In a development environment, the files will be sprocketized on each request if there have been changes to the source files. In a production environment, the files will only be sprocketized one time, and only if there have been changes. Also, in a production environment, the files will be compressed by whichever javascript compressor is available.)
|
14
14
|
|
15
15
|
s.rubyforge_project = 'rack-sprocketize'
|
16
16
|
|
17
|
-
s.add_dependency 'rack', '~> 1.2
|
18
|
-
s.add_dependency 'sprockets', '~> 1.0
|
19
|
-
s.add_dependency 'valuable', '~> 0.8
|
20
|
-
s.add_development_dependency '
|
21
|
-
s.add_development_dependency '
|
22
|
-
s.add_development_dependency '
|
23
|
-
s.add_development_dependency '
|
24
|
-
s.add_development_dependency '
|
25
|
-
s.add_development_dependency '
|
17
|
+
s.add_dependency 'rack', '~> 1.2'
|
18
|
+
s.add_dependency 'sprockets', '~> 1.0'
|
19
|
+
s.add_dependency 'valuable', '~> 0.8'
|
20
|
+
s.add_development_dependency 'rake', '>= 0.8.7'
|
21
|
+
s.add_development_dependency 'rspec', '~> 2.6'
|
22
|
+
s.add_development_dependency 'test-construct', '~> 1.2'
|
23
|
+
s.add_development_dependency 'jsmin', '~> 1.0'
|
24
|
+
s.add_development_dependency 'packr', '~> 3.1'
|
25
|
+
s.add_development_dependency 'yui-compressor', '~> 0.9'
|
26
|
+
s.add_development_dependency 'closure-compiler', '~> 1.0'
|
26
27
|
|
27
28
|
s.files = `git ls-files`.split("\n")
|
28
29
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,23 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-sprocketize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 13
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
-
- Pete
|
14
|
-
- Browne
|
13
|
+
- Pete Browne
|
15
14
|
autorequire:
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date: 2011-
|
20
|
-
default_executable:
|
18
|
+
date: 2011-08-30 00:00:00 Z
|
21
19
|
dependencies:
|
22
20
|
- !ruby/object:Gem::Dependency
|
23
21
|
name: rack
|
@@ -27,12 +25,11 @@ dependencies:
|
|
27
25
|
requirements:
|
28
26
|
- - ~>
|
29
27
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
28
|
+
hash: 11
|
31
29
|
segments:
|
32
30
|
- 1
|
33
31
|
- 2
|
34
|
-
|
35
|
-
version: 1.2.1
|
32
|
+
version: "1.2"
|
36
33
|
type: :runtime
|
37
34
|
version_requirements: *id001
|
38
35
|
- !ruby/object:Gem::Dependency
|
@@ -43,12 +40,11 @@ dependencies:
|
|
43
40
|
requirements:
|
44
41
|
- - ~>
|
45
42
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
43
|
+
hash: 15
|
47
44
|
segments:
|
48
45
|
- 1
|
49
46
|
- 0
|
50
|
-
|
51
|
-
version: 1.0.2
|
47
|
+
version: "1.0"
|
52
48
|
type: :runtime
|
53
49
|
version_requirements: *id002
|
54
50
|
- !ruby/object:Gem::Dependency
|
@@ -59,110 +55,119 @@ dependencies:
|
|
59
55
|
requirements:
|
60
56
|
- - ~>
|
61
57
|
- !ruby/object:Gem::Version
|
62
|
-
hash:
|
58
|
+
hash: 27
|
63
59
|
segments:
|
64
60
|
- 0
|
65
61
|
- 8
|
66
|
-
|
67
|
-
version: 0.8.5
|
62
|
+
version: "0.8"
|
68
63
|
type: :runtime
|
69
64
|
version_requirements: *id003
|
70
65
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
66
|
+
name: rake
|
72
67
|
prerelease: false
|
73
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
74
69
|
none: false
|
75
70
|
requirements:
|
76
|
-
- -
|
71
|
+
- - ">="
|
77
72
|
- !ruby/object:Gem::Version
|
78
|
-
hash:
|
73
|
+
hash: 49
|
79
74
|
segments:
|
80
|
-
- 2
|
81
|
-
- 5
|
82
75
|
- 0
|
83
|
-
|
76
|
+
- 8
|
77
|
+
- 7
|
78
|
+
version: 0.8.7
|
84
79
|
type: :development
|
85
80
|
version_requirements: *id004
|
86
81
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
82
|
+
name: rspec
|
88
83
|
prerelease: false
|
89
84
|
requirement: &id005 !ruby/object:Gem::Requirement
|
90
85
|
none: false
|
91
86
|
requirements:
|
92
87
|
- - ~>
|
93
88
|
- !ruby/object:Gem::Version
|
94
|
-
hash:
|
89
|
+
hash: 15
|
95
90
|
segments:
|
96
|
-
- 1
|
97
91
|
- 2
|
98
|
-
-
|
99
|
-
version:
|
92
|
+
- 6
|
93
|
+
version: "2.6"
|
100
94
|
type: :development
|
101
95
|
version_requirements: *id005
|
102
96
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
97
|
+
name: test-construct
|
104
98
|
prerelease: false
|
105
99
|
requirement: &id006 !ruby/object:Gem::Requirement
|
106
100
|
none: false
|
107
101
|
requirements:
|
108
102
|
- - ~>
|
109
103
|
- !ruby/object:Gem::Version
|
110
|
-
hash:
|
104
|
+
hash: 11
|
111
105
|
segments:
|
112
106
|
- 1
|
113
|
-
-
|
114
|
-
|
115
|
-
version: 1.0.1
|
107
|
+
- 2
|
108
|
+
version: "1.2"
|
116
109
|
type: :development
|
117
110
|
version_requirements: *id006
|
118
111
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
112
|
+
name: jsmin
|
120
113
|
prerelease: false
|
121
114
|
requirement: &id007 !ruby/object:Gem::Requirement
|
122
115
|
none: false
|
123
116
|
requirements:
|
124
117
|
- - ~>
|
125
118
|
- !ruby/object:Gem::Version
|
126
|
-
hash:
|
119
|
+
hash: 15
|
127
120
|
segments:
|
128
|
-
- 3
|
129
121
|
- 1
|
130
122
|
- 0
|
131
|
-
version:
|
123
|
+
version: "1.0"
|
132
124
|
type: :development
|
133
125
|
version_requirements: *id007
|
134
126
|
- !ruby/object:Gem::Dependency
|
135
|
-
name:
|
127
|
+
name: packr
|
136
128
|
prerelease: false
|
137
129
|
requirement: &id008 !ruby/object:Gem::Requirement
|
138
130
|
none: false
|
139
131
|
requirements:
|
140
132
|
- - ~>
|
141
133
|
- !ruby/object:Gem::Version
|
142
|
-
hash:
|
134
|
+
hash: 5
|
135
|
+
segments:
|
136
|
+
- 3
|
137
|
+
- 1
|
138
|
+
version: "3.1"
|
139
|
+
type: :development
|
140
|
+
version_requirements: *id008
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: yui-compressor
|
143
|
+
prerelease: false
|
144
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 25
|
143
150
|
segments:
|
144
151
|
- 0
|
145
152
|
- 9
|
146
|
-
|
147
|
-
version: 0.9.4
|
153
|
+
version: "0.9"
|
148
154
|
type: :development
|
149
|
-
version_requirements: *
|
155
|
+
version_requirements: *id009
|
150
156
|
- !ruby/object:Gem::Dependency
|
151
157
|
name: closure-compiler
|
152
158
|
prerelease: false
|
153
|
-
requirement: &
|
159
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
154
160
|
none: false
|
155
161
|
requirements:
|
156
162
|
- - ~>
|
157
163
|
- !ruby/object:Gem::Version
|
158
|
-
hash:
|
164
|
+
hash: 15
|
159
165
|
segments:
|
160
166
|
- 1
|
161
167
|
- 0
|
162
|
-
|
163
|
-
version: 1.0.0
|
168
|
+
version: "1.0"
|
164
169
|
type: :development
|
165
|
-
version_requirements: *
|
170
|
+
version_requirements: *id010
|
166
171
|
description: Rack::Sprocketize is a piece of Rack Middleware which uses Sprockets to concatenate javascript files and then optionally compresses them. In a development environment, the files will be sprocketized on each request if there have been changes to the source files. In a production environment, the files will only be sprocketized one time, and only if there have been changes. Also, in a production environment, the files will be compressed by whichever javascript compressor is available.
|
167
172
|
email:
|
168
173
|
- me@petebrowne.com
|
@@ -187,7 +192,6 @@ files:
|
|
187
192
|
- rack-sprocketize.gemspec
|
188
193
|
- spec/rack/sprocketize_spec.rb
|
189
194
|
- spec/spec_helper.rb
|
190
|
-
has_rdoc: true
|
191
195
|
homepage: http://github.com/petebrowne/rack-sprocketize
|
192
196
|
licenses: []
|
193
197
|
|
@@ -217,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
221
|
requirements: []
|
218
222
|
|
219
223
|
rubyforge_project: rack-sprocketize
|
220
|
-
rubygems_version: 1.
|
224
|
+
rubygems_version: 1.8.5
|
221
225
|
signing_key:
|
222
226
|
specification_version: 3
|
223
227
|
summary: Rack::Sprocketize is a piece of Rack Middleware which uses Sprockets to concatenate javascript files and then optionally compresses them.
|