sprockets 2.3.3 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sprockets might be problematic. Click here for more details.
- data/README.md +5 -0
- data/lib/sprockets.rb +26 -6
- data/lib/sprockets/base.rb +96 -5
- data/lib/sprockets/environment.rb +11 -15
- data/lib/sprockets/mime.rb +5 -4
- data/lib/sprockets/{trail.rb → paths.rb} +5 -37
- data/lib/sprockets/processing.rb +0 -34
- data/lib/sprockets/server.rb +7 -7
- data/lib/sprockets/version.rb +1 -1
- metadata +217 -183
- checksums.yaml +0 -7
data/README.md
CHANGED
data/lib/sprockets.rb
CHANGED
@@ -3,7 +3,6 @@ require 'sprockets/version'
|
|
3
3
|
module Sprockets
|
4
4
|
# Environment
|
5
5
|
autoload :Base, "sprockets/base"
|
6
|
-
autoload :Engines, "sprockets/engines"
|
7
6
|
autoload :Environment, "sprockets/environment"
|
8
7
|
autoload :Index, "sprockets/index"
|
9
8
|
autoload :Manifest, "sprockets/manifest"
|
@@ -15,14 +14,11 @@ module Sprockets
|
|
15
14
|
autoload :StaticAsset, "sprockets/static_asset"
|
16
15
|
|
17
16
|
# Processing
|
18
|
-
autoload :CharsetNormalizer, "sprockets/charset_normalizer"
|
19
17
|
autoload :Context, "sprockets/context"
|
20
|
-
autoload :DirectiveProcessor, "sprockets/directive_processor"
|
21
18
|
autoload :EcoTemplate, "sprockets/eco_template"
|
22
19
|
autoload :EjsTemplate, "sprockets/ejs_template"
|
23
20
|
autoload :JstProcessor, "sprockets/jst_processor"
|
24
21
|
autoload :Processor, "sprockets/processor"
|
25
|
-
autoload :SafetyColons, "sprockets/safety_colons"
|
26
22
|
autoload :SassCacheStore, "sprockets/sass_cache_store"
|
27
23
|
autoload :SassImporter, "sprockets/sass_importer"
|
28
24
|
autoload :SassTemplate, "sprockets/sass_template"
|
@@ -43,8 +39,32 @@ module Sprockets
|
|
43
39
|
end
|
44
40
|
|
45
41
|
# Extend Sprockets module to provide global registry
|
46
|
-
|
47
|
-
|
42
|
+
require 'hike'
|
43
|
+
require 'sprockets/engines'
|
44
|
+
require 'sprockets/mime'
|
45
|
+
require 'sprockets/processing'
|
46
|
+
require 'sprockets/paths'
|
47
|
+
extend Engines, Mime, Processing, Paths
|
48
|
+
|
49
|
+
@trail = Hike::Trail.new(File.expand_path('..', __FILE__))
|
50
|
+
@mime_types = {}
|
51
|
+
@engines = {}
|
52
|
+
@preprocessors = Hash.new { |h, k| h[k] = [] }
|
53
|
+
@postprocessors = Hash.new { |h, k| h[k] = [] }
|
54
|
+
@bundle_processors = Hash.new { |h, k| h[k] = [] }
|
55
|
+
|
56
|
+
register_mime_type 'text/css', '.css'
|
57
|
+
register_mime_type 'application/javascript', '.js'
|
58
|
+
|
59
|
+
require 'sprockets/directive_processor'
|
60
|
+
register_preprocessor 'text/css', DirectiveProcessor
|
61
|
+
register_preprocessor 'application/javascript', DirectiveProcessor
|
62
|
+
|
63
|
+
require 'sprockets/safety_colons'
|
64
|
+
register_postprocessor 'application/javascript', SafetyColons
|
65
|
+
|
66
|
+
require 'sprockets/charset_normalizer'
|
67
|
+
register_bundle_processor 'text/css', CharsetNormalizer
|
48
68
|
|
49
69
|
# Cherry pick the default Tilt engines that make sense for
|
50
70
|
# Sprockets. We don't need ones that only generate html like HAML.
|
data/lib/sprockets/base.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'sprockets/asset_attributes'
|
2
2
|
require 'sprockets/bundled_asset'
|
3
3
|
require 'sprockets/caching'
|
4
|
+
require 'sprockets/errors'
|
4
5
|
require 'sprockets/processed_asset'
|
5
|
-
require 'sprockets/processing'
|
6
6
|
require 'sprockets/server'
|
7
7
|
require 'sprockets/static_asset'
|
8
|
-
require 'sprockets/trail'
|
9
8
|
require 'pathname'
|
10
9
|
|
11
10
|
module Sprockets
|
12
11
|
# `Base` class for `Environment` and `Index`.
|
13
12
|
class Base
|
14
|
-
include Caching, Processing,
|
13
|
+
include Caching, Paths, Mime, Processing, Engines, Server
|
15
14
|
|
16
15
|
# Returns a `Digest` implementation class.
|
17
16
|
#
|
@@ -98,6 +97,98 @@ module Sprockets
|
|
98
97
|
@cache = cache
|
99
98
|
end
|
100
99
|
|
100
|
+
def prepend_path(path)
|
101
|
+
# Overrides the global behavior to expire the index
|
102
|
+
expire_index!
|
103
|
+
super
|
104
|
+
end
|
105
|
+
|
106
|
+
def append_path(path)
|
107
|
+
# Overrides the global behavior to expire the index
|
108
|
+
expire_index!
|
109
|
+
super
|
110
|
+
end
|
111
|
+
|
112
|
+
def clear_paths
|
113
|
+
# Overrides the global behavior to expire the index
|
114
|
+
expire_index!
|
115
|
+
super
|
116
|
+
end
|
117
|
+
|
118
|
+
# Finds the expanded real path for a given logical path by
|
119
|
+
# searching the environment's paths.
|
120
|
+
#
|
121
|
+
# resolve("application.js")
|
122
|
+
# # => "/path/to/app/javascripts/application.js.coffee"
|
123
|
+
#
|
124
|
+
# A `FileNotFound` exception is raised if the file does not exist.
|
125
|
+
def resolve(logical_path, options = {})
|
126
|
+
# If a block is given, preform an iterable search
|
127
|
+
if block_given?
|
128
|
+
args = attributes_for(logical_path).search_paths + [options]
|
129
|
+
@trail.find(*args) do |path|
|
130
|
+
yield Pathname.new(path)
|
131
|
+
end
|
132
|
+
else
|
133
|
+
resolve(logical_path, options) do |pathname|
|
134
|
+
return pathname
|
135
|
+
end
|
136
|
+
raise FileNotFound, "couldn't find file '#{logical_path}'"
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# Register a new mime type.
|
141
|
+
def register_mime_type(mime_type, ext)
|
142
|
+
# Overrides the global behavior to expire the index
|
143
|
+
expire_index!
|
144
|
+
@trail.append_extension(ext)
|
145
|
+
super
|
146
|
+
end
|
147
|
+
|
148
|
+
# Registers a new Engine `klass` for `ext`.
|
149
|
+
def register_engine(ext, klass)
|
150
|
+
# Overrides the global behavior to expire the index
|
151
|
+
expire_index!
|
152
|
+
add_engine_to_trail(ext, klass)
|
153
|
+
super
|
154
|
+
end
|
155
|
+
|
156
|
+
def register_preprocessor(mime_type, klass, &block)
|
157
|
+
# Overrides the global behavior to expire the index
|
158
|
+
expire_index!
|
159
|
+
super
|
160
|
+
end
|
161
|
+
|
162
|
+
def unregister_preprocessor(mime_type, klass)
|
163
|
+
# Overrides the global behavior to expire the index
|
164
|
+
expire_index!
|
165
|
+
super
|
166
|
+
end
|
167
|
+
|
168
|
+
def register_postprocessor(mime_type, klass, &block)
|
169
|
+
# Overrides the global behavior to expire the index
|
170
|
+
expire_index!
|
171
|
+
super
|
172
|
+
end
|
173
|
+
|
174
|
+
def unregister_postprocessor(mime_type, klass)
|
175
|
+
# Overrides the global behavior to expire the index
|
176
|
+
expire_index!
|
177
|
+
super
|
178
|
+
end
|
179
|
+
|
180
|
+
def register_bundle_processor(mime_type, klass, &block)
|
181
|
+
# Overrides the global behavior to expire the index
|
182
|
+
expire_index!
|
183
|
+
super
|
184
|
+
end
|
185
|
+
|
186
|
+
def unregister_bundle_processor(mime_type, klass)
|
187
|
+
# Overrides the global behavior to expire the index
|
188
|
+
expire_index!
|
189
|
+
super
|
190
|
+
end
|
191
|
+
|
101
192
|
# Return an `Index`. Must be implemented by the subclass.
|
102
193
|
def index
|
103
194
|
raise NotImplementedError
|
@@ -113,14 +204,14 @@ module Sprockets
|
|
113
204
|
#
|
114
205
|
# Subclasses may cache this method.
|
115
206
|
def entries(pathname)
|
116
|
-
trail.entries(pathname)
|
207
|
+
@trail.entries(pathname)
|
117
208
|
end
|
118
209
|
|
119
210
|
# Works like `File.stat`.
|
120
211
|
#
|
121
212
|
# Subclasses may cache this method.
|
122
213
|
def stat(path)
|
123
|
-
trail.stat(path)
|
214
|
+
@trail.stat(path)
|
124
215
|
end
|
125
216
|
|
126
217
|
# Read and compute digest of filename.
|
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'sprockets/base'
|
2
|
-
require 'sprockets/charset_normalizer'
|
3
2
|
require 'sprockets/context'
|
4
|
-
require 'sprockets/directive_processor'
|
5
3
|
require 'sprockets/index'
|
6
|
-
require 'sprockets/safety_colons'
|
7
4
|
|
8
5
|
require 'hike'
|
9
6
|
require 'logger'
|
@@ -35,24 +32,23 @@ module Sprockets
|
|
35
32
|
@digest_class = ::Digest::MD5
|
36
33
|
@version = ''
|
37
34
|
|
38
|
-
@mime_types =
|
35
|
+
@mime_types = Sprockets.registered_mime_types
|
39
36
|
@engines = Sprockets.engines
|
40
|
-
@preprocessors =
|
41
|
-
@postprocessors =
|
42
|
-
@bundle_processors =
|
37
|
+
@preprocessors = Sprockets.preprocessors
|
38
|
+
@postprocessors = Sprockets.postprocessors
|
39
|
+
@bundle_processors = Sprockets.bundle_processors
|
40
|
+
|
41
|
+
Sprockets.paths.each do |path|
|
42
|
+
append_path(path)
|
43
|
+
end
|
43
44
|
|
44
45
|
@engines.each do |ext, klass|
|
45
46
|
add_engine_to_trail(ext, klass)
|
46
47
|
end
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
register_preprocessor 'text/css', DirectiveProcessor
|
52
|
-
register_preprocessor 'application/javascript', DirectiveProcessor
|
53
|
-
|
54
|
-
register_postprocessor 'application/javascript', SafetyColons
|
55
|
-
register_bundle_processor 'text/css', CharsetNormalizer
|
49
|
+
@mime_types.each do |ext, type|
|
50
|
+
@trail.append_extension(ext)
|
51
|
+
end
|
56
52
|
|
57
53
|
expire_index!
|
58
54
|
|
data/lib/sprockets/mime.rb
CHANGED
@@ -15,6 +15,11 @@ module Sprockets
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# Returns a `Hash` of explicitly registered mime types.
|
19
|
+
def registered_mime_types
|
20
|
+
@mime_types.dup
|
21
|
+
end
|
22
|
+
|
18
23
|
if {}.respond_to?(:key)
|
19
24
|
def extension_for_mime_type(type)
|
20
25
|
mime_types.key(type)
|
@@ -41,8 +46,4 @@ module Sprockets
|
|
41
46
|
end
|
42
47
|
end
|
43
48
|
end
|
44
|
-
|
45
|
-
# Extend Sprockets module to provide global registry
|
46
|
-
extend Mime
|
47
|
-
@mime_types = {}
|
48
49
|
end
|
@@ -1,16 +1,11 @@
|
|
1
|
-
require 'sprockets/errors'
|
2
|
-
require 'pathname'
|
3
|
-
|
4
1
|
module Sprockets
|
5
|
-
|
6
|
-
# the `Environment` and `Index` classes.
|
7
|
-
module Trail
|
2
|
+
module Paths
|
8
3
|
# Returns `Environment` root.
|
9
4
|
#
|
10
5
|
# All relative paths are expanded with root as its base. To be
|
11
6
|
# useful set this to your applications root directory. (`Rails.root`)
|
12
7
|
def root
|
13
|
-
trail.root.dup
|
8
|
+
@trail.root.dup
|
14
9
|
end
|
15
10
|
|
16
11
|
# Returns an `Array` of path `String`s.
|
@@ -21,14 +16,13 @@ module Sprockets
|
|
21
16
|
# have no affect on the environment. See `append_path`,
|
22
17
|
# `prepend_path`, and `clear_paths`.
|
23
18
|
def paths
|
24
|
-
trail.paths.dup
|
19
|
+
@trail.paths.dup
|
25
20
|
end
|
26
21
|
|
27
22
|
# Prepend a `path` to the `paths` list.
|
28
23
|
#
|
29
24
|
# Paths at the end of the `Array` have the least priority.
|
30
25
|
def prepend_path(path)
|
31
|
-
expire_index!
|
32
26
|
@trail.prepend_path(path)
|
33
27
|
end
|
34
28
|
|
@@ -36,7 +30,6 @@ module Sprockets
|
|
36
30
|
#
|
37
31
|
# Paths at the beginning of the `Array` have a higher priority.
|
38
32
|
def append_path(path)
|
39
|
-
expire_index!
|
40
33
|
@trail.append_path(path)
|
41
34
|
end
|
42
35
|
|
@@ -46,7 +39,6 @@ module Sprockets
|
|
46
39
|
# completely wipe the paths list and reappend them in the order
|
47
40
|
# you want.
|
48
41
|
def clear_paths
|
49
|
-
expire_index!
|
50
42
|
@trail.paths.dup.each { |path| @trail.remove_path(path) }
|
51
43
|
end
|
52
44
|
|
@@ -57,34 +49,10 @@ module Sprockets
|
|
57
49
|
# # => [".js", ".css", ".coffee", ".sass", ...]
|
58
50
|
#
|
59
51
|
def extensions
|
60
|
-
trail.extensions.dup
|
61
|
-
end
|
62
|
-
|
63
|
-
# Finds the expanded real path for a given logical path by
|
64
|
-
# searching the environment's paths.
|
65
|
-
#
|
66
|
-
# resolve("application.js")
|
67
|
-
# # => "/path/to/app/javascripts/application.js.coffee"
|
68
|
-
#
|
69
|
-
# A `FileNotFound` exception is raised if the file does not exist.
|
70
|
-
def resolve(logical_path, options = {})
|
71
|
-
# If a block is given, preform an iterable search
|
72
|
-
if block_given?
|
73
|
-
args = attributes_for(logical_path).search_paths + [options]
|
74
|
-
trail.find(*args) do |path|
|
75
|
-
yield Pathname.new(path)
|
76
|
-
end
|
77
|
-
else
|
78
|
-
resolve(logical_path, options) do |pathname|
|
79
|
-
return pathname
|
80
|
-
end
|
81
|
-
raise FileNotFound, "couldn't find file '#{logical_path}'"
|
82
|
-
end
|
52
|
+
@trail.extensions.dup
|
83
53
|
end
|
84
54
|
|
85
55
|
protected
|
86
|
-
|
87
|
-
@trail
|
88
|
-
end
|
56
|
+
attr_reader :trail
|
89
57
|
end
|
90
58
|
end
|
data/lib/sprockets/processing.rb
CHANGED
@@ -7,16 +7,6 @@ module Sprockets
|
|
7
7
|
# `Processing` is an internal mixin whose public methods are exposed on
|
8
8
|
# the `Environment` and `Index` classes.
|
9
9
|
module Processing
|
10
|
-
include Engines, Mime
|
11
|
-
|
12
|
-
# Register a new mime type.
|
13
|
-
def register_mime_type(mime_type, ext)
|
14
|
-
# Overrides the global behavior to expire the index
|
15
|
-
expire_index!
|
16
|
-
@trail.append_extension(ext)
|
17
|
-
super
|
18
|
-
end
|
19
|
-
|
20
10
|
# Returns an `Array` of format extension `String`s.
|
21
11
|
#
|
22
12
|
# format_extensions
|
@@ -26,14 +16,6 @@ module Sprockets
|
|
26
16
|
@trail.extensions - @engines.keys
|
27
17
|
end
|
28
18
|
|
29
|
-
# Registers a new Engine `klass` for `ext`.
|
30
|
-
def register_engine(ext, klass)
|
31
|
-
# Overrides the global behavior to expire the index
|
32
|
-
expire_index!
|
33
|
-
add_engine_to_trail(ext, klass)
|
34
|
-
super
|
35
|
-
end
|
36
|
-
|
37
19
|
# Deprecated alias for `preprocessors`.
|
38
20
|
def processors(*args)
|
39
21
|
preprocessors(*args)
|
@@ -88,8 +70,6 @@ module Sprockets
|
|
88
70
|
# end
|
89
71
|
#
|
90
72
|
def register_preprocessor(mime_type, klass, &block)
|
91
|
-
expire_index!
|
92
|
-
|
93
73
|
if block_given?
|
94
74
|
name = klass.to_s
|
95
75
|
klass = Class.new(Processor) do
|
@@ -112,8 +92,6 @@ module Sprockets
|
|
112
92
|
# end
|
113
93
|
#
|
114
94
|
def register_postprocessor(mime_type, klass, &block)
|
115
|
-
expire_index!
|
116
|
-
|
117
95
|
if block_given?
|
118
96
|
name = klass.to_s
|
119
97
|
klass = Class.new(Processor) do
|
@@ -135,8 +113,6 @@ module Sprockets
|
|
135
113
|
# unregister_preprocessor 'text/css', Sprockets::DirectiveProcessor
|
136
114
|
#
|
137
115
|
def unregister_preprocessor(mime_type, klass)
|
138
|
-
expire_index!
|
139
|
-
|
140
116
|
if klass.is_a?(String) || klass.is_a?(Symbol)
|
141
117
|
klass = @preprocessors[mime_type].detect { |cls|
|
142
118
|
cls.respond_to?(:name) &&
|
@@ -152,8 +128,6 @@ module Sprockets
|
|
152
128
|
# unregister_postprocessor 'text/css', Sprockets::DirectiveProcessor
|
153
129
|
#
|
154
130
|
def unregister_postprocessor(mime_type, klass)
|
155
|
-
expire_index!
|
156
|
-
|
157
131
|
if klass.is_a?(String) || klass.is_a?(Symbol)
|
158
132
|
klass = @postprocessors[mime_type].detect { |cls|
|
159
133
|
cls.respond_to?(:name) &&
|
@@ -192,8 +166,6 @@ module Sprockets
|
|
192
166
|
# end
|
193
167
|
#
|
194
168
|
def register_bundle_processor(mime_type, klass, &block)
|
195
|
-
expire_index!
|
196
|
-
|
197
169
|
if block_given?
|
198
170
|
name = klass.to_s
|
199
171
|
klass = Class.new(Processor) do
|
@@ -210,8 +182,6 @@ module Sprockets
|
|
210
182
|
# unregister_bundle_processor 'text/css', Sprockets::CharsetNormalizer
|
211
183
|
#
|
212
184
|
def unregister_bundle_processor(mime_type, klass)
|
213
|
-
expire_index!
|
214
|
-
|
215
185
|
if klass.is_a?(String) || klass.is_a?(Symbol)
|
216
186
|
klass = @bundle_processors[mime_type].detect { |cls|
|
217
187
|
cls.respond_to?(:name) &&
|
@@ -234,8 +204,6 @@ module Sprockets
|
|
234
204
|
#
|
235
205
|
# The compressor object must respond to `compress` or `compile`.
|
236
206
|
def css_compressor=(compressor)
|
237
|
-
expire_index!
|
238
|
-
|
239
207
|
unregister_bundle_processor 'text/css', :css_compressor
|
240
208
|
return unless compressor
|
241
209
|
|
@@ -256,8 +224,6 @@ module Sprockets
|
|
256
224
|
#
|
257
225
|
# The compressor object must respond to `compress` or `compile`.
|
258
226
|
def js_compressor=(compressor)
|
259
|
-
expire_index!
|
260
|
-
|
261
227
|
unregister_bundle_processor 'application/javascript', :js_compressor
|
262
228
|
return unless compressor
|
263
229
|
|
data/lib/sprockets/server.rb
CHANGED
@@ -33,16 +33,16 @@ module Sprockets
|
|
33
33
|
# Extract the path from everything after the leading slash
|
34
34
|
path = unescape(env['PATH_INFO'].to_s.sub(/^\//, ''))
|
35
35
|
|
36
|
-
# Strip fingerprint
|
37
|
-
if fingerprint = path_fingerprint(path)
|
38
|
-
path = path.sub("-#{fingerprint}", '')
|
39
|
-
end
|
40
|
-
|
41
36
|
# URLs containing a `".."` are rejected for security reasons.
|
42
37
|
if forbidden_request?(path)
|
43
38
|
return forbidden_response
|
44
39
|
end
|
45
40
|
|
41
|
+
# Strip fingerprint
|
42
|
+
if fingerprint = path_fingerprint(path)
|
43
|
+
path = path.sub("-#{fingerprint}", '')
|
44
|
+
end
|
45
|
+
|
46
46
|
# Look up the asset.
|
47
47
|
asset = find_asset(path, :bundle => !body_only?(env))
|
48
48
|
|
@@ -90,7 +90,7 @@ module Sprockets
|
|
90
90
|
#
|
91
91
|
# http://example.org/assets/../../../etc/passwd
|
92
92
|
#
|
93
|
-
path.include?("..")
|
93
|
+
path.include?("..")
|
94
94
|
end
|
95
95
|
|
96
96
|
# Returns a 403 Forbidden response tuple
|
@@ -222,7 +222,7 @@ module Sprockets
|
|
222
222
|
# # => "0aa2105d29558f3eb790d411d7d8fb66"
|
223
223
|
#
|
224
224
|
def path_fingerprint(path)
|
225
|
-
path[/-([0-9a-f]{7,40})\.[^.]
|
225
|
+
path[/-([0-9a-f]{7,40})\.[^.]+$/, 1]
|
226
226
|
end
|
227
227
|
|
228
228
|
# URI.unescape is deprecated on 1.9. We need to use URI::Parser
|
data/lib/sprockets/version.rb
CHANGED
metadata
CHANGED
@@ -1,219 +1,239 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 2.4.0
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Sam Stephenson
|
8
14
|
- Joshua Peek
|
9
15
|
autorequire:
|
10
16
|
bindir: bin
|
11
17
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
18
|
+
|
19
|
+
date: 2012-03-27 00:00:00 -05:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
15
23
|
name: hike
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '1.2'
|
21
|
-
type: :runtime
|
22
24
|
prerelease: false
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '1.0'
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 11
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 2
|
34
|
+
version: "1.2"
|
35
35
|
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: multi_json
|
36
39
|
prerelease: false
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '1.0'
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 15
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
version: "1.0"
|
49
50
|
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: rack
|
50
54
|
prerelease: false
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '1.1'
|
63
|
-
- - "!="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 1.3.0
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 15
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 0
|
64
|
+
version: "1.0"
|
66
65
|
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: tilt
|
67
69
|
prerelease: false
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 13
|
76
|
+
segments:
|
77
|
+
- 1
|
78
|
+
- 1
|
79
|
+
version: "1.1"
|
73
80
|
- - "!="
|
74
|
-
- !ruby/object:Gem::Version
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 27
|
83
|
+
segments:
|
84
|
+
- 1
|
85
|
+
- 3
|
86
|
+
- 0
|
75
87
|
version: 1.3.0
|
76
|
-
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id004
|
90
|
+
- !ruby/object:Gem::Dependency
|
77
91
|
name: coffee-script
|
78
|
-
requirement: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '2.0'
|
83
|
-
type: :development
|
84
92
|
prerelease: false
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.2.0
|
93
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 2
|
101
|
+
- 0
|
102
|
+
version: "2.0"
|
97
103
|
type: :development
|
104
|
+
version_requirements: *id005
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: coffee-script-source
|
98
107
|
prerelease: false
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
108
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ~>
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 31
|
114
|
+
segments:
|
115
|
+
- 1
|
116
|
+
- 2
|
117
|
+
- 0
|
103
118
|
version: 1.2.0
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
name: eco
|
106
|
-
requirement: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '1.0'
|
111
119
|
type: :development
|
120
|
+
version_requirements: *id006
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: eco
|
112
123
|
prerelease: false
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '1.0'
|
124
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ~>
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 15
|
130
|
+
segments:
|
131
|
+
- 1
|
132
|
+
- 0
|
133
|
+
version: "1.0"
|
125
134
|
type: :development
|
135
|
+
version_requirements: *id007
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: ejs
|
126
138
|
prerelease: false
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.0'
|
139
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ~>
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 15
|
145
|
+
segments:
|
146
|
+
- 1
|
147
|
+
- 0
|
148
|
+
version: "1.0"
|
139
149
|
type: :development
|
150
|
+
version_requirements: *id008
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: execjs
|
140
153
|
prerelease: false
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
154
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
155
|
+
none: false
|
156
|
+
requirements:
|
157
|
+
- - ~>
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
hash: 15
|
160
|
+
segments:
|
161
|
+
- 1
|
162
|
+
- 0
|
163
|
+
version: "1.0"
|
153
164
|
type: :development
|
165
|
+
version_requirements: *id009
|
166
|
+
- !ruby/object:Gem::Dependency
|
167
|
+
name: json
|
154
168
|
prerelease: false
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
- !ruby/object:Gem::Dependency
|
161
|
-
name: rack-test
|
162
|
-
requirement: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
169
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
164
172
|
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
hash: 3
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
version: "0"
|
167
178
|
type: :development
|
179
|
+
version_requirements: *id010
|
180
|
+
- !ruby/object:Gem::Dependency
|
181
|
+
name: rack-test
|
168
182
|
prerelease: false
|
169
|
-
|
170
|
-
|
183
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
171
186
|
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
hash: 3
|
189
|
+
segments:
|
190
|
+
- 0
|
191
|
+
version: "0"
|
181
192
|
type: :development
|
193
|
+
version_requirements: *id011
|
194
|
+
- !ruby/object:Gem::Dependency
|
195
|
+
name: rake
|
182
196
|
prerelease: false
|
183
|
-
|
184
|
-
|
197
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
199
|
+
requirements:
|
185
200
|
- - ">="
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
requirements:
|
192
|
-
- - "~>"
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '3.1'
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
hash: 3
|
203
|
+
segments:
|
204
|
+
- 0
|
205
|
+
version: "0"
|
195
206
|
type: :development
|
207
|
+
version_requirements: *id012
|
208
|
+
- !ruby/object:Gem::Dependency
|
209
|
+
name: sass
|
196
210
|
prerelease: false
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
211
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
213
|
+
requirements:
|
214
|
+
- - ~>
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
hash: 5
|
217
|
+
segments:
|
218
|
+
- 3
|
219
|
+
- 1
|
220
|
+
version: "3.1"
|
221
|
+
type: :development
|
222
|
+
version_requirements: *id013
|
223
|
+
description: Sprockets is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.
|
224
|
+
email:
|
205
225
|
- sstephenson@gmail.com
|
206
226
|
- josh@joshpeek.com
|
207
|
-
executables:
|
227
|
+
executables:
|
208
228
|
- sprockets
|
209
229
|
extensions: []
|
230
|
+
|
210
231
|
extra_rdoc_files: []
|
211
|
-
|
212
|
-
|
232
|
+
|
233
|
+
files:
|
213
234
|
- README.md
|
214
|
-
-
|
235
|
+
- LICENSE
|
215
236
|
- lib/rake/sprocketstask.rb
|
216
|
-
- lib/sprockets.rb
|
217
237
|
- lib/sprockets/asset.rb
|
218
238
|
- lib/sprockets/asset_attributes.rb
|
219
239
|
- lib/sprockets/base.rb
|
@@ -232,6 +252,7 @@ files:
|
|
232
252
|
- lib/sprockets/jst_processor.rb
|
233
253
|
- lib/sprockets/manifest.rb
|
234
254
|
- lib/sprockets/mime.rb
|
255
|
+
- lib/sprockets/paths.rb
|
235
256
|
- lib/sprockets/processed_asset.rb
|
236
257
|
- lib/sprockets/processing.rb
|
237
258
|
- lib/sprockets/processor.rb
|
@@ -242,30 +263,43 @@ files:
|
|
242
263
|
- lib/sprockets/scss_template.rb
|
243
264
|
- lib/sprockets/server.rb
|
244
265
|
- lib/sprockets/static_asset.rb
|
245
|
-
- lib/sprockets/trail.rb
|
246
266
|
- lib/sprockets/utils.rb
|
247
267
|
- lib/sprockets/version.rb
|
268
|
+
- lib/sprockets.rb
|
269
|
+
- bin/sprockets
|
270
|
+
has_rdoc: true
|
248
271
|
homepage: http://getsprockets.org/
|
249
272
|
licenses: []
|
250
|
-
|
273
|
+
|
251
274
|
post_install_message:
|
252
275
|
rdoc_options: []
|
253
|
-
|
276
|
+
|
277
|
+
require_paths:
|
254
278
|
- lib
|
255
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
256
|
-
|
279
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
280
|
+
none: false
|
281
|
+
requirements:
|
257
282
|
- - ">="
|
258
|
-
- !ruby/object:Gem::Version
|
259
|
-
|
260
|
-
|
261
|
-
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
hash: 3
|
285
|
+
segments:
|
286
|
+
- 0
|
287
|
+
version: "0"
|
288
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
289
|
+
none: false
|
290
|
+
requirements:
|
262
291
|
- - ">="
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
|
292
|
+
- !ruby/object:Gem::Version
|
293
|
+
hash: 3
|
294
|
+
segments:
|
295
|
+
- 0
|
296
|
+
version: "0"
|
265
297
|
requirements: []
|
298
|
+
|
266
299
|
rubyforge_project: sprockets
|
267
|
-
rubygems_version:
|
300
|
+
rubygems_version: 1.6.2
|
268
301
|
signing_key:
|
269
|
-
specification_version:
|
302
|
+
specification_version: 3
|
270
303
|
summary: Rack-based asset packaging system
|
271
304
|
test_files: []
|
305
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 7d49453908a650a88e75856c3002fc529139583d
|
4
|
-
data.tar.gz: c4032fb6c3197b5872097d55365b1e3c8547369d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: eeaf6c406818a6736564bad41f732b7f45c18504625caa8e4a71cb0466e6238656ade799b1f4c4c1a5e37c4142f8180e0136cfa6489a88a93e59e70cbf9a5346
|
7
|
-
data.tar.gz: 1d3f359e15024afc8828d45f868b73a8685d21d69a9e93e4dfd57afb7a4043f5e06f84f49d714ebb879e0855ae6c866a83b042770756bf03dbf64fe2288fcfe5
|