rack-pack 0.2.1 → 0.2.2
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/.gitignore +3 -3
- data/Gemfile.lock +45 -0
- data/README.md +6 -4
- data/lib/rack/pack.rb +10 -10
- data/lib/rack/pack/javascript.rb +4 -4
- data/lib/rack/pack/package.rb +26 -17
- data/lib/rack/pack/stylesheet.rb +4 -4
- data/lib/rack/pack/version.rb +1 -1
- data/rack-pack.gemspec +3 -3
- data/spec/rack/pack/javascript_spec.rb +5 -5
- data/spec/rack/pack/package_spec.rb +10 -10
- data/spec/rack/pack/stylesheet_spec.rb +3 -3
- data/spec/rack/pack_spec.rb +50 -14
- data/spec/spec_helper.rb +1 -0
- metadata +10 -13
- data/LICENSE +0 -20
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
rack-pack (0.2.2)
|
5
|
+
rack (~> 1.2.1)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (3.0.1)
|
11
|
+
closure-compiler (0.3.3)
|
12
|
+
diff-lcs (1.1.2)
|
13
|
+
jsmin (1.0.1)
|
14
|
+
oyster (0.9.4)
|
15
|
+
packr (3.1.0)
|
16
|
+
oyster
|
17
|
+
rack (1.2.1)
|
18
|
+
rainpress (1.0)
|
19
|
+
rspec (2.0.1)
|
20
|
+
rspec-core (~> 2.0.1)
|
21
|
+
rspec-expectations (~> 2.0.1)
|
22
|
+
rspec-mocks (~> 2.0.1)
|
23
|
+
rspec-core (2.0.1)
|
24
|
+
rspec-expectations (2.0.1)
|
25
|
+
diff-lcs (>= 1.1.2)
|
26
|
+
rspec-mocks (2.0.1)
|
27
|
+
rspec-core (~> 2.0.1)
|
28
|
+
rspec-expectations (~> 2.0.1)
|
29
|
+
test-construct (1.2.0)
|
30
|
+
yui-compressor (0.9.1)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
activesupport (~> 3.0.0)
|
37
|
+
closure-compiler (~> 0.3.2)
|
38
|
+
jsmin (~> 1.0.1)
|
39
|
+
packr (~> 3.1.0)
|
40
|
+
rack (~> 1.2.1)
|
41
|
+
rack-pack!
|
42
|
+
rainpress (~> 1.0.0)
|
43
|
+
rspec (~> 2.0.0)
|
44
|
+
test-construct (~> 1.2.0)
|
45
|
+
yui-compressor (~> 0.9.1)
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Rack::Pack is a piece of Rack Middleware that packages and optionally compresses
|
|
4
4
|
|
5
5
|
### Why?
|
6
6
|
|
7
|
-
I've tried a dozen different asset packaging solutions
|
7
|
+
I've tried a dozen different asset packaging solutions inlcuding AssetPackager, BundleFu, Jammit, Sprockets, etc...none of which were quite what I wanted. I didn't need any helpers, controllers, embedded images, rake tasks, or Yaml config files. I just wanted something to take my assets and package them into one file, and you're looking at it.
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -19,7 +19,6 @@ or in Rails:
|
|
19
19
|
|
20
20
|
# Gemfile
|
21
21
|
gem 'rack-pack'
|
22
|
-
|
23
22
|
# config/application.rb
|
24
23
|
config.middleware.use Rack::Pack
|
25
24
|
|
@@ -66,19 +65,22 @@ or in Rails:
|
|
66
65
|
|
67
66
|
# Gemfile
|
68
67
|
gem 'jsmin'
|
69
|
-
|
70
68
|
# config/application.rb
|
71
69
|
config.middleware.use Rack::Pack
|
72
70
|
# would use JSMin
|
73
71
|
|
74
72
|
To pass options to the javascript compressor just use the `:js_compressor` option:
|
75
73
|
|
76
|
-
|
74
|
+
requrie 'packr'
|
77
75
|
use Rack::Pack, :js_compression => { :shrink_vars => true }
|
78
76
|
|
79
77
|
By default, packages are only compressed in a production environment. If for some reason you want them to always be compressed, pass the `:always_compress` option:
|
80
78
|
|
81
79
|
use Rack::Pack, :always_compress => true
|
80
|
+
|
81
|
+
## Advanced Usage
|
82
|
+
|
83
|
+
TODO
|
82
84
|
|
83
85
|
## Heroku and other read-only filesystems
|
84
86
|
|
data/lib/rack/pack.rb
CHANGED
@@ -69,17 +69,17 @@ module Rack
|
|
69
69
|
|
70
70
|
protected
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
72
|
+
def update_packages
|
73
|
+
Pack.packages.each_value do |package|
|
74
|
+
package.update if package.stale?
|
75
|
+
end
|
76
|
+
@updated = true
|
77
|
+
end
|
78
|
+
|
79
|
+
def skip_update?
|
80
|
+
return false if Pack.options[:always_update]
|
81
|
+
Pack.production? && @updated
|
75
82
|
end
|
76
|
-
@updated = true
|
77
|
-
end
|
78
|
-
|
79
|
-
def skip_update?
|
80
|
-
return false if Pack.options[:always_update]
|
81
|
-
Pack.production? && @updated
|
82
|
-
end
|
83
83
|
|
84
84
|
Package.register :js, Javascript
|
85
85
|
Package.register :css, Stylesheet
|
data/lib/rack/pack/javascript.rb
CHANGED
@@ -19,10 +19,10 @@ module Rack
|
|
19
19
|
|
20
20
|
protected
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
def compression_options(defaults = {})
|
23
|
+
return defaults unless Pack.options
|
24
|
+
defaults.merge Pack.options[:js_compression]
|
25
|
+
end
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
data/lib/rack/pack/package.rb
CHANGED
@@ -38,6 +38,7 @@ module Rack
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def compile
|
41
|
+
@size = source_files.size
|
41
42
|
compiled = source_files.map(&:read).join
|
42
43
|
compiled = compress(compiled) if compress?
|
43
44
|
compiled.strip
|
@@ -49,11 +50,11 @@ module Rack
|
|
49
50
|
|
50
51
|
def stale?
|
51
52
|
@source_files = nil
|
52
|
-
source_files? && (file_missing? || source_files_newer?)
|
53
|
+
source_files? && (file_missing? || source_files_added_or_removed? || source_files_newer?)
|
53
54
|
end
|
54
55
|
|
55
56
|
def source_files
|
56
|
-
@source_files ||=
|
57
|
+
@source_files ||= glob? ? Pathname.glob(@from) : @from
|
57
58
|
end
|
58
59
|
|
59
60
|
def compress?
|
@@ -62,21 +63,29 @@ module Rack
|
|
62
63
|
|
63
64
|
protected
|
64
65
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
66
|
+
def to_pathname(file)
|
67
|
+
file.is_a?(Pathname) ? file : Pathname.new(file)
|
68
|
+
end
|
69
|
+
|
70
|
+
def glob?
|
71
|
+
@from.is_a?(String)
|
72
|
+
end
|
73
|
+
|
74
|
+
def source_files?
|
75
|
+
!source_files.empty?
|
76
|
+
end
|
77
|
+
|
78
|
+
def file_missing?
|
79
|
+
!file.exist?
|
80
|
+
end
|
81
|
+
|
82
|
+
def source_files_added_or_removed?
|
83
|
+
glob? && source_files.size != @size
|
84
|
+
end
|
85
|
+
|
86
|
+
def source_files_newer?
|
87
|
+
source_files.map(&:mtime).max > file.mtime
|
88
|
+
end
|
80
89
|
end
|
81
90
|
end
|
82
91
|
end
|
data/lib/rack/pack/stylesheet.rb
CHANGED
@@ -13,10 +13,10 @@ module Rack
|
|
13
13
|
|
14
14
|
protected
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
def compression_options(defaults = {})
|
17
|
+
return defaults unless Pack.options
|
18
|
+
defaults.merge Pack.options[:css_compression]
|
19
|
+
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/lib/rack/pack/version.rb
CHANGED
data/rack-pack.gemspec
CHANGED
@@ -10,14 +10,14 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = 'me@petebrowne.com'
|
11
11
|
s.homepage = 'http://rubygems.org/gems/rack-pack'
|
12
12
|
s.summary = 'Rack Middleware for packaging assets such as javascripts and stylesheets.'
|
13
|
-
s.description = '
|
13
|
+
s.description = 'Rack::Pack is a piece of Rack Middleware that packages and optionally compresses assets such as javascripts and stylesheets into single files. In a development environment, assets will be packaged on each request if there have been changes to the source files. In a production environment, assets will only be packaged one time, and only if there have been changes.'
|
14
14
|
|
15
15
|
s.required_rubygems_version = '>= 1.3.6'
|
16
16
|
s.rubyforge_project = 'rack-pack'
|
17
17
|
|
18
18
|
s.add_dependency 'rack', '~> 1.2.1'
|
19
|
-
s.add_development_dependency 'rspec', '~> 2.0.0
|
20
|
-
s.add_development_dependency 'activesupport', '~> 3.0.0
|
19
|
+
s.add_development_dependency 'rspec', '~> 2.0.0'
|
20
|
+
s.add_development_dependency 'activesupport', '~> 3.0.0'
|
21
21
|
s.add_development_dependency 'test-construct', '~> 1.2.0'
|
22
22
|
s.add_development_dependency 'jsmin', '~> 1.0.1'
|
23
23
|
s.add_development_dependency 'packr', '~> 3.1.0'
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Rack::Pack::Javascript do
|
4
4
|
describe '#compile' do
|
5
|
-
it '
|
5
|
+
it 'strips the concatenated output' do
|
6
6
|
within_construct do |c|
|
7
7
|
c.file 'input-1.js', ' 1'
|
8
8
|
c.file 'input-2.js', '2 '
|
@@ -18,7 +18,7 @@ describe Rack::Pack::Javascript do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
context 'when JSMin is required' do
|
21
|
-
it '
|
21
|
+
it 'compresses using JSMin' do
|
22
22
|
reveal_const :JSMin do
|
23
23
|
within_construct do |c|
|
24
24
|
c.file 'input.js', 'function(number) { return number + 2; }'
|
@@ -31,7 +31,7 @@ describe Rack::Pack::Javascript do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
context 'when packr is required' do
|
34
|
-
it '
|
34
|
+
it 'compresses using Packr' do
|
35
35
|
reveal_const :Packr do
|
36
36
|
within_construct do |c|
|
37
37
|
c.file 'input.js', '1'
|
@@ -44,7 +44,7 @@ describe Rack::Pack::Javascript do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
context 'when yui/compressor is required' do
|
47
|
-
it '
|
47
|
+
it 'compresses using YUI::JavaScriptCompressor' do
|
48
48
|
reveal_const :YUI do
|
49
49
|
within_construct do |c|
|
50
50
|
c.file 'input.js', '1'
|
@@ -59,7 +59,7 @@ describe Rack::Pack::Javascript do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
context 'when closure-compiler is required' do
|
62
|
-
it '
|
62
|
+
it 'compresses using Closure::Compiler' do
|
63
63
|
reveal_const :Closure do
|
64
64
|
within_construct do |c|
|
65
65
|
c.file 'input.js', '1'
|
@@ -14,35 +14,35 @@ describe Rack::Pack::Package do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
describe '.register' do
|
17
|
-
it '
|
17
|
+
it 'stores the package class for the given extension' do
|
18
18
|
Rack::Pack::Package.register :mock, MockPackage
|
19
19
|
Rack::Pack::Package.mappings['mock'].should == MockPackage
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
describe '.mappings' do
|
24
|
-
it '
|
24
|
+
it 'has a Javascript mapping' do
|
25
25
|
Rack::Pack::Package.mappings['js'].should == Rack::Pack::Javascript
|
26
26
|
end
|
27
27
|
|
28
|
-
it '
|
28
|
+
it 'has a Stylesheet mapping' do
|
29
29
|
Rack::Pack::Package.mappings['css'].should == Rack::Pack::Stylesheet
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
describe '.[]' do
|
34
|
-
it '
|
34
|
+
it 'finds the package class for the given file' do
|
35
35
|
Rack::Pack::Package['some/javascript.js'].should == Rack::Pack::Javascript
|
36
36
|
end
|
37
37
|
|
38
|
-
it '
|
38
|
+
it 'defaults to the base Package' do
|
39
39
|
Rack::Pack::Package['missing.ext'].should == Rack::Pack::Package
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
43
|
describe '#file' do
|
44
44
|
context 'when initialized with a string' do
|
45
|
-
it '
|
45
|
+
it 'converts it to a pathname' do
|
46
46
|
package = Rack::Pack::Package.new('hello', [])
|
47
47
|
package.file.should == Pathname.new('hello')
|
48
48
|
end
|
@@ -50,14 +50,14 @@ describe Rack::Pack::Package do
|
|
50
50
|
|
51
51
|
describe '#source_files'
|
52
52
|
context 'when initialized with an array of strings' do
|
53
|
-
it '
|
53
|
+
it 'converts them to pathnames' do
|
54
54
|
package = Rack::Pack::Package.new('', %w(file-1 file-2))
|
55
55
|
package.source_files.should =~ [ Pathname.new('file-1'), Pathname.new('file-2') ]
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
context 'when initialized with a string' do
|
60
|
-
it '
|
60
|
+
it 'treats it as a Dir glob' do
|
61
61
|
within_construct do |c|
|
62
62
|
c.file 'dir/file-1.js'
|
63
63
|
c.file 'dir/file-2.js'
|
@@ -115,7 +115,7 @@ describe Rack::Pack::Package do
|
|
115
115
|
end
|
116
116
|
|
117
117
|
context 'when given a glob string' do
|
118
|
-
it '
|
118
|
+
it 'checks for new files' do
|
119
119
|
within_construct do |c|
|
120
120
|
c.file 'directory/file-1'
|
121
121
|
|
@@ -133,7 +133,7 @@ describe Rack::Pack::Package do
|
|
133
133
|
end
|
134
134
|
|
135
135
|
describe '#update' do
|
136
|
-
it '
|
136
|
+
it 'combines the files and writes it to the output file' do
|
137
137
|
within_construct do |c|
|
138
138
|
to_file = c.file('packed-file', 'Stale Content')
|
139
139
|
package = Rack::Pack::Package.new(
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Rack::Pack::Stylesheet do
|
4
4
|
describe '#compile' do
|
5
|
-
it '
|
5
|
+
it 'strips the concatenated output' do
|
6
6
|
within_construct do |c|
|
7
7
|
c.file 'input-1.css', ' 1'
|
8
8
|
c.file 'input-2.css', '2 '
|
@@ -18,7 +18,7 @@ describe Rack::Pack::Stylesheet do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
context 'when yui/compressor is required' do
|
21
|
-
it '
|
21
|
+
it 'compresses using YUI::JavaScriptCompressor' do
|
22
22
|
reveal_const :YUI do
|
23
23
|
within_construct do |c|
|
24
24
|
c.file 'input.css', '1'
|
@@ -33,7 +33,7 @@ describe Rack::Pack::Stylesheet do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
context 'when rainpress is required' do
|
36
|
-
it '
|
36
|
+
it 'compresses using Rainpress' do
|
37
37
|
reveal_const :Rainpress do
|
38
38
|
within_construct do |c|
|
39
39
|
c.file 'input.css', '1'
|
data/spec/rack/pack_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe Rack::Pack do
|
|
15
15
|
alias_method :request, :request_for
|
16
16
|
|
17
17
|
context 'with default settings' do
|
18
|
-
it '
|
18
|
+
it 'packs javascripts' do
|
19
19
|
within_construct do |c|
|
20
20
|
c.file 'vendor/javascripts/file-1.js', '1'
|
21
21
|
c.file 'javascripts/file-2.js', '2'
|
@@ -27,7 +27,7 @@ describe Rack::Pack do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
it '
|
30
|
+
it 'packs stylesheets' do
|
31
31
|
within_construct do |c|
|
32
32
|
c.file 'vendor/stylesheets/file-1.css', '1'
|
33
33
|
c.file 'stylesheets/file-2.css', '2'
|
@@ -39,7 +39,7 @@ describe Rack::Pack do
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
it '
|
42
|
+
it 'does not compress the packages' do
|
43
43
|
reveal_const :JSMin do
|
44
44
|
within_construct do |c|
|
45
45
|
c.file 'app/javascripts/file.js', '1'
|
@@ -52,8 +52,8 @@ describe Rack::Pack do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
context 'on next request' do
|
55
|
-
context '
|
56
|
-
it '
|
55
|
+
context 'when files are updated' do
|
56
|
+
it 're-packs the package' do
|
57
57
|
within_construct do |c|
|
58
58
|
c.file 'app/stylesheets/file-1.css', '1'
|
59
59
|
c.file 'app/stylesheets/file-2.css', '2'
|
@@ -70,8 +70,8 @@ describe Rack::Pack do
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
context '
|
74
|
-
it '
|
73
|
+
context 'when files are not updated' do
|
74
|
+
it 'does not re-pack the package' do
|
75
75
|
within_construct do |c|
|
76
76
|
c.file 'app/stylesheets/file-1.css', '1'
|
77
77
|
c.file 'app/stylesheets/file-2.css', '2'
|
@@ -88,10 +88,46 @@ describe Rack::Pack do
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
91
|
+
|
92
|
+
context 'when files are added' do
|
93
|
+
it 're-packs the package' do
|
94
|
+
within_construct do |c|
|
95
|
+
c.file 'app/stylesheets/file-1.css', '1'
|
96
|
+
c.file 'app/stylesheets/file-2.css', '2'
|
97
|
+
|
98
|
+
@app = build_app
|
99
|
+
@app.call(request)
|
100
|
+
File.read('public/stylesheets/application.css').should == '12'
|
101
|
+
|
102
|
+
sleep 1
|
103
|
+
c.file 'app/stylesheets/file-3.css', '3'
|
104
|
+
@app.call(request)
|
105
|
+
File.read('public/stylesheets/application.css').should == '123'
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
context 'when files are removed' do
|
111
|
+
it 're-packs the package' do
|
112
|
+
within_construct do |c|
|
113
|
+
c.file 'app/stylesheets/file-1.css', '1'
|
114
|
+
c.file 'app/stylesheets/file-2.css', '2'
|
115
|
+
|
116
|
+
@app = build_app
|
117
|
+
@app.call(request)
|
118
|
+
File.read('public/stylesheets/application.css').should == '12'
|
119
|
+
|
120
|
+
sleep 1
|
121
|
+
FileUtils.rm 'app/stylesheets/file-2.css'
|
122
|
+
@app.call(request)
|
123
|
+
File.read('public/stylesheets/application.css').should == '1'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
91
127
|
end
|
92
128
|
|
93
129
|
context 'with some custom packages' do
|
94
|
-
it '
|
130
|
+
it 'packs the files' do
|
95
131
|
within_construct do |c|
|
96
132
|
c.file 'vendor/javascripts/file-1.js', '1'
|
97
133
|
c.file 'app/javascripts/file-2.js', '2'
|
@@ -104,7 +140,7 @@ describe Rack::Pack do
|
|
104
140
|
end
|
105
141
|
|
106
142
|
context 'with :always_compress on' do
|
107
|
-
it '
|
143
|
+
it 'compresses the packages' do
|
108
144
|
reveal_const :JSMin do
|
109
145
|
within_construct do |c|
|
110
146
|
c.file 'app/javascripts/file.js', '1'
|
@@ -118,7 +154,7 @@ describe Rack::Pack do
|
|
118
154
|
end
|
119
155
|
|
120
156
|
context 'with a default package set to nil' do
|
121
|
-
it '
|
157
|
+
it 'does not pack the files' do
|
122
158
|
within_construct do |c|
|
123
159
|
c.file 'vendor/javascripts/file-1.js', '1'
|
124
160
|
|
@@ -138,7 +174,7 @@ describe Rack::Pack do
|
|
138
174
|
Object.send(:remove_const, :Rails)
|
139
175
|
end
|
140
176
|
|
141
|
-
it '
|
177
|
+
it 'packs files only one time' do
|
142
178
|
within_construct do |c|
|
143
179
|
c.file 'app/javascripts/file.js', '1'
|
144
180
|
|
@@ -152,8 +188,8 @@ describe Rack::Pack do
|
|
152
188
|
end
|
153
189
|
end
|
154
190
|
|
155
|
-
context 'with always_update
|
156
|
-
it '
|
191
|
+
context 'with :always_update on' do
|
192
|
+
it 'packs the files on each request' do
|
157
193
|
within_construct do |c|
|
158
194
|
c.file 'app/javascripts/file.js', '1'
|
159
195
|
|
@@ -169,7 +205,7 @@ describe Rack::Pack do
|
|
169
205
|
end
|
170
206
|
|
171
207
|
context 'with javascript compression options' do
|
172
|
-
it '
|
208
|
+
it 'passes the options to the javascript compressor' do
|
173
209
|
reveal_const :Packr do
|
174
210
|
within_construct do |c|
|
175
211
|
c.file 'app/javascripts/file.js', '1'
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-pack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Pete Browne
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-11 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -40,14 +40,12 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
hash:
|
43
|
+
hash: 15
|
44
44
|
segments:
|
45
45
|
- 2
|
46
46
|
- 0
|
47
47
|
- 0
|
48
|
-
|
49
|
-
- 20
|
50
|
-
version: 2.0.0.beta.20
|
48
|
+
version: 2.0.0
|
51
49
|
requirement: *id002
|
52
50
|
name: rspec
|
53
51
|
prerelease: false
|
@@ -58,13 +56,12 @@ dependencies:
|
|
58
56
|
requirements:
|
59
57
|
- - ~>
|
60
58
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
59
|
+
hash: 7
|
62
60
|
segments:
|
63
61
|
- 3
|
64
62
|
- 0
|
65
63
|
- 0
|
66
|
-
|
67
|
-
version: 3.0.0.rc2
|
64
|
+
version: 3.0.0
|
68
65
|
requirement: *id003
|
69
66
|
name: activesupport
|
70
67
|
prerelease: false
|
@@ -165,7 +162,7 @@ dependencies:
|
|
165
162
|
name: rainpress
|
166
163
|
prerelease: false
|
167
164
|
type: :development
|
168
|
-
description:
|
165
|
+
description: Rack::Pack is a piece of Rack Middleware that packages and optionally compresses assets such as javascripts and stylesheets into single files. In a development environment, assets will be packaged on each request if there have been changes to the source files. In a production environment, assets will only be packaged one time, and only if there have been changes.
|
169
166
|
email: me@petebrowne.com
|
170
167
|
executables: []
|
171
168
|
|
@@ -177,7 +174,7 @@ files:
|
|
177
174
|
- .gitignore
|
178
175
|
- .rspec
|
179
176
|
- Gemfile
|
180
|
-
-
|
177
|
+
- Gemfile.lock
|
181
178
|
- README.md
|
182
179
|
- Rakefile
|
183
180
|
- lib/rack-pack.rb
|
data/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2010 Peter Browne
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|