sprockets-rails 2.1.3 → 2.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/lib/sprockets/rails/helper.rb +28 -12
- data/lib/sprockets/rails/legacy_asset_url_helper.rb +4 -0
- data/lib/sprockets/rails/task.rb +9 -0
- data/lib/sprockets/rails/version.rb +1 -1
- data/lib/sprockets/railtie.rb +5 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02d24e7c7f1fde95838d5eea5ac20f508b061246
|
4
|
+
data.tar.gz: 95a911c0f112ba5ea650bdd6df9c9a022c29f5ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c9d95c9d462e5b4cadbbcc9b33f4ef438065807b6ca54f8705a11164bd717e8895d2c07d87dd0ebea22f00eac1864575ef58468760bec3d0c5b52f392b05c1
|
7
|
+
data.tar.gz: fbad182eb782c40bf89bbb0a3631b9a346b0fa0843f13ce20f17cf7f40e45ba49c4b232851f25191ee3bb0f2b99367951fb0f1478abe242777ea483db29fa76b
|
data/README.md
CHANGED
@@ -51,7 +51,7 @@ end
|
|
51
51
|
|
52
52
|
Each asset task will invoke `assets:environment` first. By default this loads the Rails environment. You can override this task to add or remove dependencies for your specific compilation environment.
|
53
53
|
|
54
|
-
Also see [Sprockets::Rails::Task](https://github.com/
|
54
|
+
Also see [Sprockets::Rails::Task](https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/rails/task.rb) and [Rake::SprocketsTask](https://github.com/sstephenson/sprockets/blob/master/lib/rake/sprocketstask.rb).
|
55
55
|
|
56
56
|
|
57
57
|
### Initializer options
|
@@ -85,7 +85,7 @@ Defaults to `/assets`. Changes the directory to compile assets to.
|
|
85
85
|
|
86
86
|
**`config.assets.manifest`**
|
87
87
|
|
88
|
-
Defines the full path to be used for the asset precompiler's manifest file. Defaults to
|
88
|
+
Defines the full path to be used for the asset precompiler's manifest file. Defaults to a randomly-generated filename in the `config.assets.prefix` directory within the public folder.
|
89
89
|
|
90
90
|
**`config.assets.digest`**
|
91
91
|
|
@@ -134,6 +134,7 @@ The following plugins provide some extras for the Sprockets Asset Pipeline.
|
|
134
134
|
* Unmanaged asset paths and urls fallback to linking to public/. This should make it easier to work with both compiled assets and simple static assets. As a side effect, there will never be any "asset not precompiled errors" when linking to missing assets. They will just link to a public file which may or may not exist.
|
135
135
|
* JS and CSS compressors must be explicitly set. Magic detection has been removed to avoid loading compressors in environments where you want to avoid loading any of the asset libraries. Assign `config.assets.js_compressor = :uglify` or `config.assets.css_compressor = :sass` for the standard compressors.
|
136
136
|
* The manifest file is now in a JSON format. Since it lives in public/ by default, the initial filename is also randomized to obfuscate public access to the resource.
|
137
|
+
* `config.assets.manifest` (if used) must now include the manifest filename, e.g. `Rails.root.join('config/manifest.json')`. It cannot be a directory.
|
137
138
|
* Two cleanup tasks. `rake assets:clean` is now a safe cleanup that only removes older assets that are no longer used. While `rake assets:clobber` nukes the entire `public/assets` directory and clears your filesystem cache. The clean task allows for rolling deploys that may still be linking to an old asset while the new assets are being built.
|
138
139
|
|
139
140
|
|
@@ -30,6 +30,14 @@ module Sprockets
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
class AbsoluteAssetPathError < ArgumentError
|
34
|
+
def initialize(bad_path, good_path, prefix)
|
35
|
+
msg = "Asset names passed to helpers should not include the #{prefix.inspect} prefix. " <<
|
36
|
+
"Instead of #{bad_path.inspect}, use #{good_path.inspect}"
|
37
|
+
super(msg)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
33
41
|
if defined? ActionView::Helpers::AssetUrlHelper
|
34
42
|
include ActionView::Helpers::AssetUrlHelper
|
35
43
|
include ActionView::Helpers::AssetTagHelper
|
@@ -77,17 +85,12 @@ module Sprockets
|
|
77
85
|
# Computes the full URL to a asset in the public directory. This
|
78
86
|
# method checks for errors before returning path.
|
79
87
|
def asset_path(source, options = {})
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
# Computes the full URL to a asset in the public directory. This
|
86
|
-
# will use +asset_path+ internally, so most of their behaviors
|
87
|
-
# will be the same.
|
88
|
-
def asset_url(source, options = {})
|
89
|
-
path_to_asset_with_errors(source, options.merge(:protocol => :request))
|
88
|
+
unless options[:debug]
|
89
|
+
check_errors_for(source, options)
|
90
|
+
end
|
91
|
+
super(source, options)
|
90
92
|
end
|
93
|
+
alias :path_to_asset :asset_path
|
91
94
|
|
92
95
|
# Get digest for asset path.
|
93
96
|
#
|
@@ -173,17 +176,30 @@ module Sprockets
|
|
173
176
|
def check_dependencies!(dep)
|
174
177
|
depend_on(dep)
|
175
178
|
depend_on_asset(dep)
|
179
|
+
rescue Sprockets::FileNotFound
|
176
180
|
end
|
177
181
|
|
178
|
-
# Raise errors when source
|
182
|
+
# Raise errors when source is not in the precompiled list, or
|
183
|
+
# incorrectly contains the assets_prefix.
|
179
184
|
def check_errors_for(source, options)
|
185
|
+
return unless self.raise_runtime_errors
|
186
|
+
|
180
187
|
source = source.to_s
|
181
|
-
return
|
188
|
+
return if source.blank? || source =~ URI_REGEXP
|
189
|
+
|
182
190
|
asset = lookup_asset_for_path(source, options)
|
183
191
|
|
184
192
|
if asset && asset_needs_precompile?(asset.logical_path, asset.pathname.to_s)
|
185
193
|
raise AssetFilteredError.new(asset.logical_path)
|
186
194
|
end
|
195
|
+
|
196
|
+
full_prefix = File.join(self.assets_prefix || "/", '')
|
197
|
+
if !asset && source.start_with?(full_prefix)
|
198
|
+
short_path = source[full_prefix.size, source.size]
|
199
|
+
if lookup_asset_for_path(short_path, options)
|
200
|
+
raise AbsoluteAssetPathError.new(source, short_path, full_prefix)
|
201
|
+
end
|
202
|
+
end
|
187
203
|
end
|
188
204
|
|
189
205
|
# Returns true when an asset will not be available after precompile is run
|
@@ -34,6 +34,10 @@ module Sprockets
|
|
34
34
|
end
|
35
35
|
alias_method :path_to_asset, :asset_path
|
36
36
|
|
37
|
+
def asset_url(source, options = {})
|
38
|
+
path_to_asset(source, options.merge(:protocol => :request))
|
39
|
+
end
|
40
|
+
|
37
41
|
ASSET_EXTENSIONS = {
|
38
42
|
:javascript => '.js',
|
39
43
|
:stylesheet => '.css'
|
data/lib/sprockets/rails/task.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/sprocketstask'
|
3
3
|
require 'sprockets'
|
4
|
+
require 'action_view'
|
4
5
|
require 'action_view/base'
|
5
6
|
|
6
7
|
module Sprockets
|
@@ -37,6 +38,14 @@ module Sprockets
|
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
41
|
+
def manifest
|
42
|
+
if app
|
43
|
+
Sprockets::Manifest.new(index, output, app.config.assets.manifest)
|
44
|
+
else
|
45
|
+
super
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
40
49
|
def cache_path
|
41
50
|
if app
|
42
51
|
"#{app.config.root}/tmp/cache/assets"
|
data/lib/sprockets/railtie.rb
CHANGED
@@ -66,7 +66,7 @@ module Sprockets
|
|
66
66
|
config.after_initialize do |app|
|
67
67
|
config = app.config
|
68
68
|
|
69
|
-
|
69
|
+
manifest_assets_path = File.join(config.paths['public'].first, config.assets.prefix)
|
70
70
|
|
71
71
|
# Configuration options that should invalidate
|
72
72
|
# the Sprockets cache when changed.
|
@@ -74,8 +74,8 @@ module Sprockets
|
|
74
74
|
app.assets.version,
|
75
75
|
config.assets.version,
|
76
76
|
config.action_controller.relative_url_root,
|
77
|
-
config.action_controller.asset_host,
|
78
|
-
Sprockets::Rails::VERSION
|
77
|
+
(config.action_controller.asset_host unless config.action_controller.asset_host.respond_to?(:call)),
|
78
|
+
Sprockets::Rails::VERSION
|
79
79
|
].compact.join('-')
|
80
80
|
|
81
81
|
# Copy config.assets.paths to Sprockets
|
@@ -99,9 +99,9 @@ module Sprockets
|
|
99
99
|
|
100
100
|
if config.assets.compile
|
101
101
|
self.assets_environment = app.assets
|
102
|
-
self.assets_manifest = Sprockets::Manifest.new(app.assets,
|
102
|
+
self.assets_manifest = Sprockets::Manifest.new(app.assets, manifest_assets_path, config.assets.manifest)
|
103
103
|
else
|
104
|
-
self.assets_manifest = Sprockets::Manifest.new(
|
104
|
+
self.assets_manifest = Sprockets::Manifest.new(manifest_assets_path, config.assets.manifest)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Peek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sprockets
|
@@ -120,3 +120,4 @@ signing_key:
|
|
120
120
|
specification_version: 4
|
121
121
|
summary: Sprockets Rails integration
|
122
122
|
test_files: []
|
123
|
+
has_rdoc:
|