sprockets 2.2.3 → 2.3.0.beta
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 -1
- data/lib/sprockets.rb +6 -2
- data/lib/sprockets/caching.rb +39 -39
- data/lib/sprockets/context.rb +1 -1
- data/lib/sprockets/directive_processor.rb +1 -1
- data/lib/sprockets/sass_cache_store.rb +25 -0
- data/lib/sprockets/sass_importer.rb +29 -0
- data/lib/sprockets/sass_template.rb +47 -0
- data/lib/sprockets/scss_template.rb +13 -0
- data/lib/sprockets/server.rb +8 -8
- data/lib/sprockets/version.rb +1 -1
- metadata +225 -170
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -354,7 +354,11 @@ submit a pull request.
|
|
354
354
|
|
355
355
|
## Version History ##
|
356
356
|
|
357
|
-
**2.
|
357
|
+
**2.3.0** (Unreleased)
|
358
|
+
|
359
|
+
* Added special Sass importer that automatically tracks any `@import`ed files.
|
360
|
+
|
361
|
+
**2.2.0** (January 10, 2012)
|
358
362
|
|
359
363
|
* Added `sprockets` command line utility.
|
360
364
|
* Added rake/sprocketstask.
|
data/lib/sprockets.rb
CHANGED
@@ -23,6 +23,10 @@ module Sprockets
|
|
23
23
|
autoload :JstProcessor, "sprockets/jst_processor"
|
24
24
|
autoload :Processor, "sprockets/processor"
|
25
25
|
autoload :SafetyColons, "sprockets/safety_colons"
|
26
|
+
autoload :SassCacheStore, "sprockets/sass_cache_store"
|
27
|
+
autoload :SassImporter, "sprockets/sass_importer"
|
28
|
+
autoload :SassTemplate, "sprockets/sass_template"
|
29
|
+
autoload :ScssTemplate, "sprockets/scss_template"
|
26
30
|
|
27
31
|
# Internal utilities
|
28
32
|
autoload :ArgumentError, "sprockets/errors"
|
@@ -55,8 +59,8 @@ module Sprockets
|
|
55
59
|
|
56
60
|
# CSS engines
|
57
61
|
register_engine '.less', Tilt::LessTemplate
|
58
|
-
register_engine '.sass',
|
59
|
-
register_engine '.scss',
|
62
|
+
register_engine '.sass', SassTemplate
|
63
|
+
register_engine '.scss', ScssTemplate
|
60
64
|
|
61
65
|
# Other
|
62
66
|
register_engine '.erb', Tilt::ERBTemplate
|
data/lib/sprockets/caching.rb
CHANGED
@@ -2,6 +2,45 @@ module Sprockets
|
|
2
2
|
# `Caching` is an internal mixin whose public methods are exposed on
|
3
3
|
# the `Environment` and `Index` classes.
|
4
4
|
module Caching
|
5
|
+
# Low level cache getter for `key`. Checks a number of supported
|
6
|
+
# cache interfaces.
|
7
|
+
def cache_get(key)
|
8
|
+
# `Cache#get(key)` for Memcache
|
9
|
+
if cache.respond_to?(:get)
|
10
|
+
cache.get(key)
|
11
|
+
|
12
|
+
# `Cache#[key]` so `Hash` can be used
|
13
|
+
elsif cache.respond_to?(:[])
|
14
|
+
cache[key]
|
15
|
+
|
16
|
+
# `Cache#read(key)` for `ActiveSupport::Cache` support
|
17
|
+
elsif cache.respond_to?(:read)
|
18
|
+
cache.read(key)
|
19
|
+
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Low level cache setter for `key`. Checks a number of supported
|
26
|
+
# cache interfaces.
|
27
|
+
def cache_set(key, value)
|
28
|
+
# `Cache#set(key, value)` for Memcache
|
29
|
+
if cache.respond_to?(:set)
|
30
|
+
cache.set(key, value)
|
31
|
+
|
32
|
+
# `Cache#[key]=value` so `Hash` can be used
|
33
|
+
elsif cache.respond_to?(:[]=)
|
34
|
+
cache[key] = value
|
35
|
+
|
36
|
+
# `Cache#write(key, value)` for `ActiveSupport::Cache` support
|
37
|
+
elsif cache.respond_to?(:write)
|
38
|
+
cache.write(key, value)
|
39
|
+
end
|
40
|
+
|
41
|
+
value
|
42
|
+
end
|
43
|
+
|
5
44
|
protected
|
6
45
|
# Cache helper method. Takes a `path` argument which maybe a
|
7
46
|
# logical path or fully expanded path. The `&block` is passed
|
@@ -53,44 +92,5 @@ module Sprockets
|
|
53
92
|
cache_set(expand_cache_key(key), hash)
|
54
93
|
hash
|
55
94
|
end
|
56
|
-
|
57
|
-
# Low level cache getter for `key`. Checks a number of supported
|
58
|
-
# cache interfaces.
|
59
|
-
def cache_get(key)
|
60
|
-
# `Cache#get(key)` for Memcache
|
61
|
-
if cache.respond_to?(:get)
|
62
|
-
cache.get(key)
|
63
|
-
|
64
|
-
# `Cache#[key]` so `Hash` can be used
|
65
|
-
elsif cache.respond_to?(:[])
|
66
|
-
cache[key]
|
67
|
-
|
68
|
-
# `Cache#read(key)` for `ActiveSupport::Cache` support
|
69
|
-
elsif cache.respond_to?(:read)
|
70
|
-
cache.read(key)
|
71
|
-
|
72
|
-
else
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
# Low level cache setter for `key`. Checks a number of supported
|
78
|
-
# cache interfaces.
|
79
|
-
def cache_set(key, value)
|
80
|
-
# `Cache#set(key, value)` for Memcache
|
81
|
-
if cache.respond_to?(:set)
|
82
|
-
cache.set(key, value)
|
83
|
-
|
84
|
-
# `Cache#[key]=value` so `Hash` can be used
|
85
|
-
elsif cache.respond_to?(:[]=)
|
86
|
-
cache[key] = value
|
87
|
-
|
88
|
-
# `Cache#write(key, value)` for `ActiveSupport::Cache` support
|
89
|
-
elsif cache.respond_to?(:write)
|
90
|
-
cache.write(key, value)
|
91
|
-
end
|
92
|
-
|
93
|
-
value
|
94
|
-
end
|
95
95
|
end
|
96
96
|
end
|
data/lib/sprockets/context.rb
CHANGED
@@ -101,7 +101,7 @@ module Sprockets
|
|
101
101
|
|
102
102
|
raise FileNotFound, "couldn't find file '#{path}'"
|
103
103
|
else
|
104
|
-
environment.resolve(path, :base_path => self.pathname.dirname, &block)
|
104
|
+
environment.resolve(path, {:base_path => self.pathname.dirname}.merge(options), &block)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -126,7 +126,7 @@ module Sprockets
|
|
126
126
|
@directives ||= header.lines.each_with_index.map { |line, index|
|
127
127
|
if directive = line[DIRECTIVE_PATTERN, 1]
|
128
128
|
name, *args = Shellwords.shellwords(directive)
|
129
|
-
if respond_to?("process_#{name}_directive"
|
129
|
+
if respond_to?("process_#{name}_directive")
|
130
130
|
[index + 1, name, *args]
|
131
131
|
end
|
132
132
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'sass'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
class SassCacheStore < ::Sass::CacheStores::Base
|
5
|
+
attr_reader :environment
|
6
|
+
|
7
|
+
def initialize(environment)
|
8
|
+
@environment = environment
|
9
|
+
end
|
10
|
+
|
11
|
+
def _store(key, version, sha, contents)
|
12
|
+
environment.cache_set("sass/#{key}", {:version => version, :sha => sha, :contents => contents})
|
13
|
+
end
|
14
|
+
|
15
|
+
def _retrieve(key, version, sha)
|
16
|
+
if obj = environment.cache_get("sass/#{key}")
|
17
|
+
return unless obj[:version] == version
|
18
|
+
return unless obj[:sha] == sha
|
19
|
+
obj[:obj]
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'sass'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
# This custom importer adds sprockets dependency tracking on to Sass
|
5
|
+
# `@import` statements. This makes the Sprockets and Sass caching
|
6
|
+
# systems work together.
|
7
|
+
class SassImporter < Sass::Importers::Filesystem
|
8
|
+
def initialize(context, root)
|
9
|
+
@context = context
|
10
|
+
super root.to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
def find_relative(*args)
|
14
|
+
engine = super
|
15
|
+
if engine && (filename = engine.options[:filename])
|
16
|
+
@context.depend_on_asset(filename)
|
17
|
+
end
|
18
|
+
engine
|
19
|
+
end
|
20
|
+
|
21
|
+
def find(*args)
|
22
|
+
engine = super
|
23
|
+
if engine && (filename = engine.options[:filename])
|
24
|
+
@context.depend_on_asset(filename)
|
25
|
+
end
|
26
|
+
engine
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'tilt'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
# This custom Tilt handler replaces the one built into Tilt. The
|
5
|
+
# main difference is that it uses a custom importer that plays nice
|
6
|
+
# with sprocket's caching system.
|
7
|
+
#
|
8
|
+
# See `SassImporter` for more infomation.
|
9
|
+
class SassTemplate < Tilt::Template
|
10
|
+
self.default_mime_type = 'text/css'
|
11
|
+
|
12
|
+
def self.engine_initialized?
|
13
|
+
defined? ::Sass::Engine
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize_engine
|
17
|
+
require_template_library 'sass'
|
18
|
+
end
|
19
|
+
|
20
|
+
def prepare
|
21
|
+
end
|
22
|
+
|
23
|
+
def syntax
|
24
|
+
:sass
|
25
|
+
end
|
26
|
+
|
27
|
+
def evaluate(context, locals, &block)
|
28
|
+
# Use custom importer that knows about Sprockets Caching
|
29
|
+
cache_store = SassCacheStore.new(context.environment)
|
30
|
+
|
31
|
+
options = {
|
32
|
+
:filename => eval_file,
|
33
|
+
:line => line,
|
34
|
+
:syntax => syntax,
|
35
|
+
:cache_store => cache_store,
|
36
|
+
:importer => SassImporter.new(context, context.pathname),
|
37
|
+
:load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) }
|
38
|
+
}
|
39
|
+
|
40
|
+
::Sass::Engine.new(data, options).render
|
41
|
+
rescue ::Sass::SyntaxError => e
|
42
|
+
# Annotates exception message with parse line number
|
43
|
+
context.__LINE__ = e.sass_backtrace.first[:line]
|
44
|
+
raise e
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'sprockets/sass_template'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
# Scss handler to replace Tilt's builtin one. See `SassTemplate` and
|
5
|
+
# `SassImporter` for more infomation.
|
6
|
+
class ScssTemplate < SassTemplate
|
7
|
+
self.default_mime_type = 'text/css'
|
8
|
+
|
9
|
+
def syntax
|
10
|
+
:scss
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/sprockets/server.rb
CHANGED
@@ -25,6 +25,11 @@ module Sprockets
|
|
25
25
|
|
26
26
|
msg = "Served asset #{env['PATH_INFO']} -"
|
27
27
|
|
28
|
+
# URLs containing a `".."` are rejected for security reasons.
|
29
|
+
if forbidden_request?(env)
|
30
|
+
return forbidden_response
|
31
|
+
end
|
32
|
+
|
28
33
|
# Mark session as "skipped" so no `Set-Cookie` header is set
|
29
34
|
env['rack.session.options'] ||= {}
|
30
35
|
env['rack.session.options'][:defer] = true
|
@@ -38,11 +43,6 @@ module Sprockets
|
|
38
43
|
path = path.sub("-#{fingerprint}", '')
|
39
44
|
end
|
40
45
|
|
41
|
-
# URLs containing a `".."` are rejected for security reasons.
|
42
|
-
if forbidden_request?(path)
|
43
|
-
return forbidden_response
|
44
|
-
end
|
45
|
-
|
46
46
|
# Look up the asset.
|
47
47
|
asset = find_asset(path, :bundle => !body_only?(env))
|
48
48
|
|
@@ -85,12 +85,12 @@ module Sprockets
|
|
85
85
|
end
|
86
86
|
|
87
87
|
private
|
88
|
-
def forbidden_request?(
|
88
|
+
def forbidden_request?(env)
|
89
89
|
# Prevent access to files elsewhere on the file system
|
90
90
|
#
|
91
91
|
# http://example.org/assets/../../../etc/passwd
|
92
92
|
#
|
93
|
-
|
93
|
+
env["PATH_INFO"].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,205 +1,240 @@
|
|
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: 31098233
|
5
|
+
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
- beta
|
11
|
+
version: 2.3.0.beta
|
5
12
|
platform: ruby
|
6
|
-
authors:
|
13
|
+
authors:
|
7
14
|
- Sam Stephenson
|
8
15
|
- Joshua Peek
|
9
16
|
autorequire:
|
10
17
|
bindir: bin
|
11
18
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
19
|
+
|
20
|
+
date: 2012-01-13 00:00:00 -06:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
15
24
|
name: hike
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '1.2'
|
21
|
-
type: :runtime
|
22
25
|
prerelease: false
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '1.0'
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 11
|
32
|
+
segments:
|
33
|
+
- 1
|
34
|
+
- 2
|
35
|
+
version: "1.2"
|
35
36
|
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: multi_json
|
36
40
|
prerelease: false
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '1.0'
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 15
|
47
|
+
segments:
|
48
|
+
- 1
|
49
|
+
- 0
|
50
|
+
version: "1.0"
|
49
51
|
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rack
|
50
55
|
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
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 15
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 0
|
65
|
+
version: "1.0"
|
66
66
|
type: :runtime
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: tilt
|
67
70
|
prerelease: false
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 13
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 1
|
80
|
+
version: "1.1"
|
73
81
|
- - "!="
|
74
|
-
- !ruby/object:Gem::Version
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 27
|
84
|
+
segments:
|
85
|
+
- 1
|
86
|
+
- 3
|
87
|
+
- 0
|
75
88
|
version: 1.3.0
|
76
|
-
|
89
|
+
type: :runtime
|
90
|
+
version_requirements: *id004
|
91
|
+
- !ruby/object:Gem::Dependency
|
77
92
|
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
93
|
prerelease: false
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.2.0
|
94
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 2
|
102
|
+
- 0
|
103
|
+
version: "2.0"
|
97
104
|
type: :development
|
105
|
+
version_requirements: *id005
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: coffee-script-source
|
98
108
|
prerelease: false
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
109
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ~>
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 31
|
115
|
+
segments:
|
116
|
+
- 1
|
117
|
+
- 2
|
118
|
+
- 0
|
103
119
|
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
120
|
type: :development
|
121
|
+
version_requirements: *id006
|
122
|
+
- !ruby/object:Gem::Dependency
|
123
|
+
name: eco
|
112
124
|
prerelease: false
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '1.0'
|
125
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ~>
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
hash: 15
|
131
|
+
segments:
|
132
|
+
- 1
|
133
|
+
- 0
|
134
|
+
version: "1.0"
|
125
135
|
type: :development
|
136
|
+
version_requirements: *id007
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: ejs
|
126
139
|
prerelease: false
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.0'
|
140
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ~>
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 15
|
146
|
+
segments:
|
147
|
+
- 1
|
148
|
+
- 0
|
149
|
+
version: "1.0"
|
139
150
|
type: :development
|
151
|
+
version_requirements: *id008
|
152
|
+
- !ruby/object:Gem::Dependency
|
153
|
+
name: execjs
|
140
154
|
prerelease: false
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
155
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
hash: 15
|
161
|
+
segments:
|
162
|
+
- 1
|
163
|
+
- 0
|
164
|
+
version: "1.0"
|
153
165
|
type: :development
|
166
|
+
version_requirements: *id009
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: json
|
154
169
|
prerelease: false
|
155
|
-
|
156
|
-
|
170
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
157
173
|
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
hash: 3
|
176
|
+
segments:
|
177
|
+
- 0
|
178
|
+
version: "0"
|
167
179
|
type: :development
|
180
|
+
version_requirements: *id010
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rack-test
|
168
183
|
prerelease: false
|
169
|
-
|
170
|
-
|
184
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
171
187
|
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
hash: 3
|
190
|
+
segments:
|
191
|
+
- 0
|
192
|
+
version: "0"
|
193
|
+
type: :development
|
194
|
+
version_requirements: *id011
|
195
|
+
- !ruby/object:Gem::Dependency
|
175
196
|
name: rake
|
176
|
-
|
177
|
-
|
197
|
+
prerelease: false
|
198
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
199
|
+
none: false
|
200
|
+
requirements:
|
178
201
|
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
hash: 3
|
204
|
+
segments:
|
205
|
+
- 0
|
206
|
+
version: "0"
|
181
207
|
type: :development
|
208
|
+
version_requirements: *id012
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: sass
|
182
211
|
prerelease: false
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
212
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
213
|
+
none: false
|
214
|
+
requirements:
|
215
|
+
- - ~>
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
hash: 5
|
218
|
+
segments:
|
219
|
+
- 3
|
220
|
+
- 1
|
221
|
+
version: "3.1"
|
222
|
+
type: :development
|
223
|
+
version_requirements: *id013
|
224
|
+
description: Sprockets is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.
|
225
|
+
email:
|
191
226
|
- sstephenson@gmail.com
|
192
227
|
- josh@joshpeek.com
|
193
|
-
executables:
|
228
|
+
executables:
|
194
229
|
- sprockets
|
195
230
|
extensions: []
|
231
|
+
|
196
232
|
extra_rdoc_files: []
|
197
|
-
|
198
|
-
|
233
|
+
|
234
|
+
files:
|
199
235
|
- README.md
|
200
|
-
-
|
236
|
+
- LICENSE
|
201
237
|
- lib/rake/sprocketstask.rb
|
202
|
-
- lib/sprockets.rb
|
203
238
|
- lib/sprockets/asset.rb
|
204
239
|
- lib/sprockets/asset_attributes.rb
|
205
240
|
- lib/sprockets/base.rb
|
@@ -222,32 +257,52 @@ files:
|
|
222
257
|
- lib/sprockets/processing.rb
|
223
258
|
- lib/sprockets/processor.rb
|
224
259
|
- lib/sprockets/safety_colons.rb
|
260
|
+
- lib/sprockets/sass_cache_store.rb
|
261
|
+
- lib/sprockets/sass_importer.rb
|
262
|
+
- lib/sprockets/sass_template.rb
|
263
|
+
- lib/sprockets/scss_template.rb
|
225
264
|
- lib/sprockets/server.rb
|
226
265
|
- lib/sprockets/static_asset.rb
|
227
266
|
- lib/sprockets/trail.rb
|
228
267
|
- lib/sprockets/utils.rb
|
229
268
|
- lib/sprockets/version.rb
|
269
|
+
- lib/sprockets.rb
|
270
|
+
- bin/sprockets
|
271
|
+
has_rdoc: true
|
230
272
|
homepage: http://getsprockets.org/
|
231
273
|
licenses: []
|
232
|
-
|
274
|
+
|
233
275
|
post_install_message:
|
234
276
|
rdoc_options: []
|
235
|
-
|
277
|
+
|
278
|
+
require_paths:
|
236
279
|
- lib
|
237
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
238
|
-
|
239
|
-
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
version: '0'
|
242
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
243
|
-
requirements:
|
280
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
281
|
+
none: false
|
282
|
+
requirements:
|
244
283
|
- - ">="
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
hash: 3
|
286
|
+
segments:
|
287
|
+
- 0
|
288
|
+
version: "0"
|
289
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
290
|
+
none: false
|
291
|
+
requirements:
|
292
|
+
- - ">"
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
hash: 25
|
295
|
+
segments:
|
296
|
+
- 1
|
297
|
+
- 3
|
298
|
+
- 1
|
299
|
+
version: 1.3.1
|
247
300
|
requirements: []
|
301
|
+
|
248
302
|
rubyforge_project: sprockets
|
249
|
-
rubygems_version:
|
303
|
+
rubygems_version: 1.6.2
|
250
304
|
signing_key:
|
251
|
-
specification_version:
|
305
|
+
specification_version: 3
|
252
306
|
summary: Rack-based asset packaging system
|
253
307
|
test_files: []
|
308
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: be373494a4e64c06e55a9ad11e2c9efae09f1492
|
4
|
-
data.tar.gz: b683ce4b0ed64e683ea98d0b5af268bdeca3f584
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: fa430704b4ef87304b8a128cb83fbb64c66e24d0bdae3d9e9e343bbebd56bf8823f65cba4a0ad1eb33204308c814910ebdd9c2b570c33fbbf89a2fadd2383b33
|
7
|
-
data.tar.gz: 785eb7a9f36afa38e6f010a573240768a9620ed216f4b20614835ffe9564d258a0e5340c9e8dbf3b538e8b960d9f7fd22342581b5e597dbbfc4e892bac7f7d3a
|