sprockets 2.2.3 → 2.3.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 -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 +221 -169
- 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,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: 3
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 2.3.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-01-16 00:00:00 -06: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
|
-
|
169
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
157
172
|
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
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
|
-
|
170
|
-
|
183
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
171
186
|
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
hash: 3
|
189
|
+
segments:
|
190
|
+
- 0
|
191
|
+
version: "0"
|
192
|
+
type: :development
|
193
|
+
version_requirements: *id011
|
194
|
+
- !ruby/object:Gem::Dependency
|
175
195
|
name: rake
|
176
|
-
|
177
|
-
|
196
|
+
prerelease: false
|
197
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
199
|
+
requirements:
|
178
200
|
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
hash: 3
|
203
|
+
segments:
|
204
|
+
- 0
|
205
|
+
version: "0"
|
181
206
|
type: :development
|
207
|
+
version_requirements: *id012
|
208
|
+
- !ruby/object:Gem::Dependency
|
209
|
+
name: sass
|
182
210
|
prerelease: false
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
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:
|
191
225
|
- sstephenson@gmail.com
|
192
226
|
- josh@joshpeek.com
|
193
|
-
executables:
|
227
|
+
executables:
|
194
228
|
- sprockets
|
195
229
|
extensions: []
|
230
|
+
|
196
231
|
extra_rdoc_files: []
|
197
|
-
|
198
|
-
|
232
|
+
|
233
|
+
files:
|
199
234
|
- README.md
|
200
|
-
-
|
235
|
+
- LICENSE
|
201
236
|
- lib/rake/sprocketstask.rb
|
202
|
-
- lib/sprockets.rb
|
203
237
|
- lib/sprockets/asset.rb
|
204
238
|
- lib/sprockets/asset_attributes.rb
|
205
239
|
- lib/sprockets/base.rb
|
@@ -222,32 +256,50 @@ files:
|
|
222
256
|
- lib/sprockets/processing.rb
|
223
257
|
- lib/sprockets/processor.rb
|
224
258
|
- lib/sprockets/safety_colons.rb
|
259
|
+
- lib/sprockets/sass_cache_store.rb
|
260
|
+
- lib/sprockets/sass_importer.rb
|
261
|
+
- lib/sprockets/sass_template.rb
|
262
|
+
- lib/sprockets/scss_template.rb
|
225
263
|
- lib/sprockets/server.rb
|
226
264
|
- lib/sprockets/static_asset.rb
|
227
265
|
- lib/sprockets/trail.rb
|
228
266
|
- lib/sprockets/utils.rb
|
229
267
|
- lib/sprockets/version.rb
|
268
|
+
- lib/sprockets.rb
|
269
|
+
- bin/sprockets
|
270
|
+
has_rdoc: true
|
230
271
|
homepage: http://getsprockets.org/
|
231
272
|
licenses: []
|
232
|
-
|
273
|
+
|
233
274
|
post_install_message:
|
234
275
|
rdoc_options: []
|
235
|
-
|
276
|
+
|
277
|
+
require_paths:
|
236
278
|
- lib
|
237
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
238
|
-
|
279
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
280
|
+
none: false
|
281
|
+
requirements:
|
239
282
|
- - ">="
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
|
242
|
-
|
243
|
-
|
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:
|
244
291
|
- - ">="
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
|
292
|
+
- !ruby/object:Gem::Version
|
293
|
+
hash: 3
|
294
|
+
segments:
|
295
|
+
- 0
|
296
|
+
version: "0"
|
247
297
|
requirements: []
|
298
|
+
|
248
299
|
rubyforge_project: sprockets
|
249
|
-
rubygems_version:
|
300
|
+
rubygems_version: 1.6.2
|
250
301
|
signing_key:
|
251
|
-
specification_version:
|
302
|
+
specification_version: 3
|
252
303
|
summary: Rack-based asset packaging system
|
253
304
|
test_files: []
|
305
|
+
|
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
|