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 CHANGED
@@ -361,6 +361,11 @@ submit a pull request.
361
361
 
362
362
  ## Version History ##
363
363
 
364
+ **2.4.0** (March 27, 2012)
365
+
366
+ * Added global path registry
367
+ * Added global processor registry
368
+
364
369
  **2.3.2** (March 26, 2012)
365
370
 
366
371
  * Fix Context#logical_path with dots
@@ -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
- extend Engines
47
- @engines = {}
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.
@@ -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, Server, Trail
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 = Hash.new { |h, k| h[k] = [] }
41
- @postprocessors = Hash.new { |h, k| h[k] = [] }
42
- @bundle_processors = Hash.new { |h, k| h[k] = [] }
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
- register_mime_type 'text/css', '.css'
49
- register_mime_type 'application/javascript', '.js'
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
 
@@ -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
- # `Trail` is an internal mixin whose public methods are exposed on
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
- def trail
87
- @trail
88
- end
56
+ attr_reader :trail
89
57
  end
90
58
  end
@@ -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
 
@@ -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?("..") || Pathname.new(path).absolute?
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})\.[^.]+\z/, 1]
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
@@ -1,3 +1,3 @@
1
1
  module Sprockets
2
- VERSION = "2.3.3"
2
+ VERSION = "2.4.0"
3
3
  end
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
- version: 2.3.3
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
- date: 2014-10-28 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: '1.2'
28
- - !ruby/object:Gem::Dependency
29
- name: multi_json
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '1.0'
42
- - !ruby/object:Gem::Dependency
43
- name: rack
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '1.0'
56
- - !ruby/object:Gem::Dependency
57
- name: tilt
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
69
- requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '1.1'
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
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '2.0'
90
- - !ruby/object:Gem::Dependency
91
- name: coffee-script-source
92
- requirement: !ruby/object:Gem::Requirement
93
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
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
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.0'
118
- - !ruby/object:Gem::Dependency
119
- name: ejs
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.0'
132
- - !ruby/object:Gem::Dependency
133
- name: execjs
134
- requirement: !ruby/object:Gem::Requirement
135
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '1.0'
146
- - !ruby/object:Gem::Dependency
147
- name: json
148
- requirement: !ruby/object:Gem::Requirement
149
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
156
- requirements:
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
170
- requirements:
183
+ requirement: &id011 !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
171
186
  - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- - !ruby/object:Gem::Dependency
175
- name: rake
176
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
184
- requirements:
197
+ requirement: &id012 !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
185
200
  - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- - !ruby/object:Gem::Dependency
189
- name: sass
190
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '3.1'
202
- description: Sprockets is a Rack-based asset packaging system that concatenates and
203
- serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.
204
- email:
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
- files:
212
- - LICENSE
232
+
233
+ files:
213
234
  - README.md
214
- - bin/sprockets
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
- metadata: {}
273
+
251
274
  post_install_message:
252
275
  rdoc_options: []
253
- require_paths:
276
+
277
+ require_paths:
254
278
  - lib
255
- required_ruby_version: !ruby/object:Gem::Requirement
256
- requirements:
279
+ required_ruby_version: !ruby/object:Gem::Requirement
280
+ none: false
281
+ requirements:
257
282
  - - ">="
258
- - !ruby/object:Gem::Version
259
- version: '0'
260
- required_rubygems_version: !ruby/object:Gem::Requirement
261
- requirements:
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
- version: '0'
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: 2.2.2
300
+ rubygems_version: 1.6.2
268
301
  signing_key:
269
- specification_version: 4
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