actionpack 3.1.0 → 3.1.1.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- data/CHANGELOG +29 -1
- data/lib/action_controller/metal/http_authentication.rb +1 -1
- data/lib/action_controller/metal/params_wrapper.rb +8 -8
- data/lib/action_dispatch/middleware/cookies.rb +5 -0
- data/lib/action_dispatch/railtie.rb +0 -1
- data/lib/action_dispatch/routing/mapper.rb +3 -1
- data/lib/action_dispatch/routing/url_for.rb +8 -4
- data/lib/action_dispatch/testing/assertions/selector.rb +2 -2
- data/lib/action_pack/version.rb +2 -2
- data/lib/action_view/asset_paths.rb +11 -9
- data/lib/action_view/helpers/asset_tag_helpers/asset_include_tag.rb +2 -2
- data/lib/action_view/helpers/asset_tag_helpers/asset_paths.rb +1 -1
- data/lib/action_view/helpers/asset_tag_helpers/javascript_tag_helpers.rb +1 -1
- data/lib/action_view/helpers/asset_tag_helpers/stylesheet_tag_helpers.rb +2 -2
- data/lib/action_view/helpers/capture_helper.rb +3 -3
- data/lib/sprockets/assets.rake +25 -24
- data/lib/sprockets/helpers/rails_helper.rb +31 -32
- data/lib/sprockets/railtie.rb +5 -3
- metadata +23 -16
data/CHANGELOG
CHANGED
@@ -1,4 +1,32 @@
|
|
1
|
-
*Rails 3.1.
|
1
|
+
*Rails 3.1.1 (unreleased)*
|
2
|
+
|
3
|
+
* Allow asset tag helper methods to accept :digest => false option in order to completely avoid the digest generation.
|
4
|
+
Useful for linking assets from static html files or from emails when the user
|
5
|
+
could probably look at an older html email with an older asset. [Santiago Pastorino]
|
6
|
+
|
7
|
+
* Don't mount Sprockets server at config.assets.prefix if config.assets.compile is false. [Mark J. Titorenko]
|
8
|
+
|
9
|
+
* Set relative url root in assets when controller isn't available for Sprockets (eg. Sass files using asset_path). Fixes #2435 [Guillermo Iguaran]
|
10
|
+
|
11
|
+
* Fix basic auth credential generation to not make newlines. GH #2882
|
12
|
+
|
13
|
+
* Fixed the behavior of asset pipeline when config.assets.digest and config.assets.compile are false and requested asset isn't precompiled.
|
14
|
+
Before the requested asset were compiled anyway ignoring that the config.assets.compile flag is false. [Guillermo Iguaran]
|
15
|
+
|
16
|
+
* CookieJar is now Enumerable. Fixes #2795
|
17
|
+
|
18
|
+
* Fixed AssetNotPrecompiled error raised when rake assets:precompile is compiling certain .erb files. See GH #2763 #2765 #2805 [Guillermo Iguaran]
|
19
|
+
|
20
|
+
* Manifest is correctly placed in assets path when default assets prefix is changed. Fixes #2776 [Guillermo Iguaran]
|
21
|
+
|
22
|
+
* Fixed stylesheet_link_tag and javascript_include_tag to respect additional options passed by the users when debug is on. [Guillermo Iguaran]
|
23
|
+
|
24
|
+
* Fix ActiveRecord#exists? when passsed a nil value
|
25
|
+
|
26
|
+
* Fix assert_select_email to work on multipart and non-multipart emails as the method stopped working correctly in Rails 3.x due to changes in the new mail gem.
|
27
|
+
|
28
|
+
|
29
|
+
*Rails 3.1.0 (August 30, 2011)*
|
2
30
|
|
3
31
|
* Param values are `paramified` in controller tests. [David Chelimsky]
|
4
32
|
|
@@ -145,7 +145,7 @@ module ActionController
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def encode_credentials(user_name, password)
|
148
|
-
"Basic #{ActiveSupport::Base64.
|
148
|
+
"Basic #{ActiveSupport::Base64.encode64s("#{user_name}:#{password}")}"
|
149
149
|
end
|
150
150
|
|
151
151
|
def authentication_request(controller, realm)
|
@@ -6,30 +6,30 @@ require 'active_support/core_ext/module/anonymous'
|
|
6
6
|
require 'action_dispatch/http/mime_types'
|
7
7
|
|
8
8
|
module ActionController
|
9
|
-
# Wraps parameters hash into nested hash. This will allow
|
10
|
-
# POST
|
9
|
+
# Wraps the parameters hash into a nested hash. This will allow clients to submit
|
10
|
+
# POST requests without having to specify any root elements.
|
11
11
|
#
|
12
12
|
# This functionality is enabled in +config/initializers/wrap_parameters.rb+
|
13
|
-
# and can be customized. If you are upgrading to Rails 3.1, this file will
|
13
|
+
# and can be customized. If you are upgrading to \Rails 3.1, this file will
|
14
14
|
# need to be created for the functionality to be enabled.
|
15
15
|
#
|
16
16
|
# You could also turn it on per controller by setting the format array to
|
17
|
-
# non-empty array:
|
17
|
+
# a non-empty array:
|
18
18
|
#
|
19
19
|
# class UsersController < ApplicationController
|
20
20
|
# wrap_parameters :format => [:json, :xml]
|
21
21
|
# end
|
22
22
|
#
|
23
|
-
# If you enable +ParamsWrapper+ for +:json+ format
|
23
|
+
# If you enable +ParamsWrapper+ for +:json+ format, instead of having to
|
24
24
|
# send JSON parameters like this:
|
25
25
|
#
|
26
26
|
# {"user": {"name": "Konata"}}
|
27
27
|
#
|
28
|
-
# You can
|
28
|
+
# You can send parameters like this:
|
29
29
|
#
|
30
30
|
# {"name": "Konata"}
|
31
31
|
#
|
32
|
-
# And it will be wrapped into a nested hash with the key name matching
|
32
|
+
# And it will be wrapped into a nested hash with the key name matching the
|
33
33
|
# controller's name. For example, if you're posting to +UsersController+,
|
34
34
|
# your new +params+ hash will look like this:
|
35
35
|
#
|
@@ -81,7 +81,7 @@ module ActionController
|
|
81
81
|
#
|
82
82
|
# ==== Examples
|
83
83
|
# wrap_parameters :format => :xml
|
84
|
-
# # enables the
|
84
|
+
# # enables the parameter wrapper for XML format
|
85
85
|
#
|
86
86
|
# wrap_parameters :person
|
87
87
|
# # wraps parameters into +params[:person]+ hash
|
@@ -84,6 +84,7 @@ module ActionDispatch
|
|
84
84
|
class CookieOverflow < StandardError; end
|
85
85
|
|
86
86
|
class CookieJar #:nodoc:
|
87
|
+
include Enumerable
|
87
88
|
|
88
89
|
# This regular expression is used to split the levels of a domain.
|
89
90
|
# The top level domain can be any string without a period or
|
@@ -123,6 +124,10 @@ module ActionDispatch
|
|
123
124
|
alias :closed? :closed
|
124
125
|
def close!; @closed = true end
|
125
126
|
|
127
|
+
def each(&block)
|
128
|
+
@cookies.each(&block)
|
129
|
+
end
|
130
|
+
|
126
131
|
# Returns the value of the cookie by +name+, or +nil+ if no such cookie exists.
|
127
132
|
def [](name)
|
128
133
|
@cookies[name.to_s]
|
@@ -458,7 +458,9 @@ module ActionDispatch
|
|
458
458
|
prefix_options = options.slice(*_route.segment_keys)
|
459
459
|
# we must actually delete prefix segment keys to avoid passing them to next url_for
|
460
460
|
_route.segment_keys.each { |k| options.delete(k) }
|
461
|
-
_routes.url_helpers.send("#{name}_path", prefix_options)
|
461
|
+
prefix = _routes.url_helpers.send("#{name}_path", prefix_options)
|
462
|
+
prefix = '' if prefix == '/'
|
463
|
+
prefix
|
462
464
|
end
|
463
465
|
end
|
464
466
|
end
|
@@ -131,10 +131,14 @@ module ActionDispatch
|
|
131
131
|
#
|
132
132
|
# Examples:
|
133
133
|
#
|
134
|
-
# url_for :controller => 'tasks', :action => 'testing', :host => 'somehost.org', :port => '8080'
|
135
|
-
#
|
136
|
-
# url_for :controller => 'tasks', :action => 'testing', :
|
137
|
-
#
|
134
|
+
# url_for :controller => 'tasks', :action => 'testing', :host => 'somehost.org', :port => '8080'
|
135
|
+
# # => 'http://somehost.org:8080/tasks/testing'
|
136
|
+
# url_for :controller => 'tasks', :action => 'testing', :host => 'somehost.org', :anchor => 'ok', :only_path => true
|
137
|
+
# # => '/tasks/testing#ok'
|
138
|
+
# url_for :controller => 'tasks', :action => 'testing', :trailing_slash => true
|
139
|
+
# # => 'http://somehost.org/tasks/testing/'
|
140
|
+
# url_for :controller => 'tasks', :action => 'testing', :host => 'somehost.org', :number => '33'
|
141
|
+
# # => 'http://somehost.org/tasks/testing?number=33'
|
138
142
|
def url_for(options = nil)
|
139
143
|
case options
|
140
144
|
when String
|
@@ -415,9 +415,9 @@ module ActionDispatch
|
|
415
415
|
assert !deliveries.empty?, "No e-mail in delivery list"
|
416
416
|
|
417
417
|
for delivery in deliveries
|
418
|
-
for part in delivery.parts
|
418
|
+
for part in (delivery.parts.empty? ? [delivery] : delivery.parts)
|
419
419
|
if part["Content-Type"].to_s =~ /^text\/html\W/
|
420
|
-
root = HTML::Document.new(part.body).root
|
420
|
+
root = HTML::Document.new(part.body.to_s).root
|
421
421
|
assert_select root, ":root", &block
|
422
422
|
end
|
423
423
|
end
|
data/lib/action_pack/version.rb
CHANGED
@@ -21,14 +21,15 @@ module ActionView
|
|
21
21
|
# When :relative (default), the protocol will be determined by the client using current protocol
|
22
22
|
# When :request, the protocol will be the request protocol
|
23
23
|
# Otherwise, the protocol is used (E.g. :http, :https, etc)
|
24
|
-
def compute_public_path(source, dir,
|
24
|
+
def compute_public_path(source, dir, options = {})
|
25
25
|
source = source.to_s
|
26
26
|
return source if is_uri?(source)
|
27
27
|
|
28
|
-
|
29
|
-
source =
|
30
|
-
source =
|
31
|
-
source =
|
28
|
+
options[:include_host] ||= true
|
29
|
+
source = rewrite_extension(source, dir, options[:ext]) if options[:ext]
|
30
|
+
source = rewrite_asset_path(source, dir, options)
|
31
|
+
source = rewrite_relative_url_root(source, relative_url_root)
|
32
|
+
source = rewrite_host_and_protocol(source, options[:protocol]) if options[:include_host]
|
32
33
|
source
|
33
34
|
end
|
34
35
|
|
@@ -119,10 +120,11 @@ module ActionView
|
|
119
120
|
end
|
120
121
|
|
121
122
|
def relative_url_root
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
123
|
+
if config.action_controller.present?
|
124
|
+
config.action_controller.relative_url_root
|
125
|
+
else
|
126
|
+
config.relative_url_root
|
127
|
+
end
|
126
128
|
end
|
127
129
|
|
128
130
|
def asset_host_config
|
@@ -60,8 +60,8 @@ module ActionView
|
|
60
60
|
|
61
61
|
private
|
62
62
|
|
63
|
-
def path_to_asset(source,
|
64
|
-
asset_paths.compute_public_path(source, asset_name.to_s.pluralize,
|
63
|
+
def path_to_asset(source, options = {})
|
64
|
+
asset_paths.compute_public_path(source, asset_name.to_s.pluralize, options.merge(:ext => extension))
|
65
65
|
end
|
66
66
|
|
67
67
|
def path_to_asset_source(source)
|
@@ -41,7 +41,7 @@ module ActionView
|
|
41
41
|
|
42
42
|
# Break out the asset path rewrite in case plugins wish to put the asset id
|
43
43
|
# someplace other than the query string.
|
44
|
-
def rewrite_asset_path(source, dir)
|
44
|
+
def rewrite_asset_path(source, dir, options = nil)
|
45
45
|
source = "/#{dir}/#{source}" unless source[0] == ?/
|
46
46
|
path = config.asset_path
|
47
47
|
|
@@ -83,7 +83,7 @@ module ActionView
|
|
83
83
|
# javascript_path "http://www.example.com/js/xmlhr" # => http://www.example.com/js/xmlhr
|
84
84
|
# javascript_path "http://www.example.com/js/xmlhr.js" # => http://www.example.com/js/xmlhr.js
|
85
85
|
def javascript_path(source)
|
86
|
-
asset_paths.compute_public_path(source, 'javascripts', 'js')
|
86
|
+
asset_paths.compute_public_path(source, 'javascripts', :ext => 'js')
|
87
87
|
end
|
88
88
|
alias_method :path_to_javascript, :javascript_path # aliased to avoid conflicts with a javascript_path named route
|
89
89
|
|
@@ -17,7 +17,7 @@ module ActionView
|
|
17
17
|
|
18
18
|
def asset_tag(source, options)
|
19
19
|
# We force the :request protocol here to avoid a double-download bug in IE7 and IE8
|
20
|
-
tag("link", { "rel" => "stylesheet", "type" => Mime::CSS, "media" => "screen", "href" => ERB::Util.html_escape(path_to_asset(source,
|
20
|
+
tag("link", { "rel" => "stylesheet", "type" => Mime::CSS, "media" => "screen", "href" => ERB::Util.html_escape(path_to_asset(source, :protocol => :request)) }.merge(options), false, false)
|
21
21
|
end
|
22
22
|
|
23
23
|
def custom_dir
|
@@ -61,7 +61,7 @@ module ActionView
|
|
61
61
|
# stylesheet_path "http://www.example.com/css/style" # => http://www.example.com/css/style
|
62
62
|
# stylesheet_path "http://www.example.com/css/style.css" # => http://www.example.com/css/style.css
|
63
63
|
def stylesheet_path(source)
|
64
|
-
asset_paths.compute_public_path(source, 'stylesheets', 'css',
|
64
|
+
asset_paths.compute_public_path(source, 'stylesheets', :ext => 'css', :protocol => :request)
|
65
65
|
end
|
66
66
|
alias_method :path_to_stylesheet, :stylesheet_path # aliased to avoid conflicts with a stylesheet_path named route
|
67
67
|
|
@@ -134,9 +134,9 @@ module ActionView
|
|
134
134
|
# WARNING: content_for is ignored in caches. So you shouldn't use it
|
135
135
|
# for elements that will be fragment cached.
|
136
136
|
def content_for(name, content = nil, &block)
|
137
|
-
content
|
138
|
-
|
139
|
-
@view_flow.append(name, content)
|
137
|
+
if content || block_given?
|
138
|
+
content = capture(&block) if block_given?
|
139
|
+
@view_flow.append(name, content) if content
|
140
140
|
nil
|
141
141
|
else
|
142
142
|
@view_flow.get(name)
|
data/lib/sprockets/assets.rake
CHANGED
@@ -9,12 +9,16 @@ namespace :assets do
|
|
9
9
|
Kernel.exec $0, *ARGV
|
10
10
|
else
|
11
11
|
Rake::Task["environment"].invoke
|
12
|
+
Rake::Task["tmp:cache:clear"].invoke
|
12
13
|
|
13
14
|
# Ensure that action view is loaded and the appropriate sprockets hooks get executed
|
14
15
|
ActionView::Base
|
15
16
|
|
16
|
-
# Always
|
17
|
-
Rails.application.config.
|
17
|
+
# Always compile files
|
18
|
+
Rails.application.config.assets.compile = true
|
19
|
+
|
20
|
+
# Always ignore asset host
|
21
|
+
Rails.application.config.action_controller.asset_host = nil
|
18
22
|
|
19
23
|
config = Rails.application.config
|
20
24
|
env = Rails.application.assets
|
@@ -22,32 +26,29 @@ namespace :assets do
|
|
22
26
|
manifest = {}
|
23
27
|
manifest_path = config.assets.manifest || target
|
24
28
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
29
|
+
config.assets.precompile.each do |path|
|
30
|
+
env.each_logical_path do |logical_path|
|
31
|
+
if path.is_a?(Regexp)
|
32
|
+
next unless path.match(logical_path)
|
33
|
+
elsif path.is_a?(Proc)
|
34
|
+
next unless path.call(logical_path)
|
35
|
+
else
|
36
|
+
next unless File.fnmatch(path.to_s, logical_path)
|
37
|
+
end
|
38
|
+
|
39
|
+
if asset = env.find_asset(logical_path)
|
40
|
+
asset_path = config.assets.digest ? asset.digest_path : logical_path
|
41
|
+
manifest[logical_path] = asset_path
|
42
|
+
filename = target.join(asset_path)
|
43
|
+
|
44
|
+
mkdir_p filename.dirname
|
45
|
+
asset.write_to(filename)
|
46
|
+
asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/
|
41
47
|
end
|
42
48
|
end
|
43
|
-
else
|
44
|
-
# TODO: Remove this once we're depending on sprockets beta 15
|
45
|
-
assets = config.assets.precompile.dup
|
46
|
-
assets << {:to => target}
|
47
|
-
env.precompile(*assets)
|
48
49
|
end
|
49
50
|
|
50
|
-
File.open("#{manifest_path}/manifest.yml", '
|
51
|
+
File.open("#{manifest_path}/manifest.yml", 'wb') do |f|
|
51
52
|
YAML.dump(manifest, f)
|
52
53
|
end
|
53
54
|
end
|
@@ -15,6 +15,8 @@ module Sprockets
|
|
15
15
|
paths.asset_environment = asset_environment
|
16
16
|
paths.asset_prefix = asset_prefix
|
17
17
|
paths.asset_digests = asset_digests
|
18
|
+
paths.compile_assets = compile_assets?
|
19
|
+
paths.digest_assets = digest_assets?
|
18
20
|
paths
|
19
21
|
end
|
20
22
|
end
|
@@ -23,57 +25,46 @@ module Sprockets
|
|
23
25
|
options = sources.extract_options!
|
24
26
|
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
25
27
|
body = options.key?(:body) ? options.delete(:body) : false
|
28
|
+
digest = options.key?(:digest) ? options.delete(:digest) : digest_assets?
|
26
29
|
|
27
30
|
sources.collect do |source|
|
28
31
|
if debug && asset = asset_paths.asset_for(source, 'js')
|
29
32
|
asset.to_a.map { |dep|
|
30
|
-
|
31
|
-
}
|
33
|
+
super(dep.to_s, { :src => asset_path(dep, :ext => 'js', :body => true, :digest => digest) }.merge!(options))
|
34
|
+
}
|
32
35
|
else
|
33
|
-
|
34
|
-
'type' => "text/javascript",
|
35
|
-
'src' => asset_path(source, 'js', body)
|
36
|
-
}.merge(options.stringify_keys)
|
37
|
-
|
38
|
-
content_tag 'script', "", tag_options
|
36
|
+
super(source.to_s, { :src => asset_path(source, :ext => 'js', :body => body, :digest => digest) }.merge!(options))
|
39
37
|
end
|
40
38
|
end.join("\n").html_safe
|
41
39
|
end
|
42
40
|
|
43
41
|
def stylesheet_link_tag(*sources)
|
44
42
|
options = sources.extract_options!
|
45
|
-
debug
|
46
|
-
body
|
47
|
-
|
43
|
+
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
44
|
+
body = options.key?(:body) ? options.delete(:body) : false
|
45
|
+
digest = options.key?(:digest) ? options.delete(:digest) : digest_assets?
|
48
46
|
|
49
47
|
sources.collect do |source|
|
50
48
|
if debug && asset = asset_paths.asset_for(source, 'css')
|
51
49
|
asset.to_a.map { |dep|
|
52
|
-
|
53
|
-
}
|
50
|
+
super(dep.to_s, { :href => asset_path(dep, :ext => 'css', :body => true, :protocol => :request, :digest => digest) }.merge!(options))
|
51
|
+
}
|
54
52
|
else
|
55
|
-
|
56
|
-
'rel' => "stylesheet",
|
57
|
-
'type' => "text/css",
|
58
|
-
'media' => media,
|
59
|
-
'href' => asset_path(source, 'css', body, :request)
|
60
|
-
}.merge(options.stringify_keys)
|
61
|
-
|
62
|
-
tag 'link', tag_options
|
53
|
+
super(source.to_s, { :href => asset_path(source, :ext => 'css', :body => body, :protocol => :request, :digest => digest) }.merge!(options))
|
63
54
|
end
|
64
55
|
end.join("\n").html_safe
|
65
56
|
end
|
66
57
|
|
67
|
-
def asset_path(source,
|
58
|
+
def asset_path(source, options = {})
|
68
59
|
source = source.logical_path if source.respond_to?(:logical_path)
|
69
|
-
path = asset_paths.compute_public_path(source, 'assets',
|
70
|
-
body ? "#{path}?body=1" : path
|
60
|
+
path = asset_paths.compute_public_path(source, 'assets', options.merge(:body => true))
|
61
|
+
options[:body] ? "#{path}?body=1" : path
|
71
62
|
end
|
72
63
|
|
73
64
|
private
|
74
65
|
def debug_assets?
|
75
66
|
begin
|
76
|
-
|
67
|
+
compile_assets? &&
|
77
68
|
(Rails.application.config.assets.debug ||
|
78
69
|
params[:debug_assets] == '1' ||
|
79
70
|
params[:debug_assets] == 'true')
|
@@ -96,6 +87,14 @@ module Sprockets
|
|
96
87
|
Rails.application.config.assets.digests
|
97
88
|
end
|
98
89
|
|
90
|
+
def compile_assets?
|
91
|
+
Rails.application.config.assets.compile
|
92
|
+
end
|
93
|
+
|
94
|
+
def digest_assets?
|
95
|
+
Rails.application.config.assets.digest
|
96
|
+
end
|
97
|
+
|
99
98
|
# Override to specify an alternative asset environment for asset
|
100
99
|
# path generation. The environment should already have been mounted
|
101
100
|
# at the prefix returned by +asset_prefix+.
|
@@ -104,12 +103,12 @@ module Sprockets
|
|
104
103
|
end
|
105
104
|
|
106
105
|
class AssetPaths < ::ActionView::AssetPaths #:nodoc:
|
107
|
-
attr_accessor :asset_environment, :asset_prefix, :asset_digests
|
106
|
+
attr_accessor :asset_environment, :asset_prefix, :asset_digests, :compile_assets, :digest_assets
|
108
107
|
|
109
108
|
class AssetNotPrecompiledError < StandardError; end
|
110
109
|
|
111
|
-
def compute_public_path(source, dir,
|
112
|
-
super(source, asset_prefix,
|
110
|
+
def compute_public_path(source, dir, options = {})
|
111
|
+
super(source, asset_prefix, options)
|
113
112
|
end
|
114
113
|
|
115
114
|
# Return the filesystem path for the source
|
@@ -129,8 +128,8 @@ module Sprockets
|
|
129
128
|
return digest
|
130
129
|
end
|
131
130
|
|
132
|
-
if
|
133
|
-
if asset = asset_environment[logical_path]
|
131
|
+
if compile_assets
|
132
|
+
if digest_assets && asset = asset_environment[logical_path]
|
134
133
|
return asset.digest_path
|
135
134
|
end
|
136
135
|
return logical_path
|
@@ -139,11 +138,11 @@ module Sprockets
|
|
139
138
|
end
|
140
139
|
end
|
141
140
|
|
142
|
-
def rewrite_asset_path(source, dir)
|
141
|
+
def rewrite_asset_path(source, dir, options = {})
|
143
142
|
if source[0] == ?/
|
144
143
|
source
|
145
144
|
else
|
146
|
-
source = digest_for(source)
|
145
|
+
source = digest_for(source) unless options[:digest] == false
|
147
146
|
source = File.join(dir, source)
|
148
147
|
source = "/#{source}" unless source =~ /^\//
|
149
148
|
source
|
data/lib/sprockets/railtie.rb
CHANGED
@@ -67,11 +67,13 @@ module Sprockets
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
if config.assets.compile
|
71
|
+
app.routes.prepend do
|
72
|
+
mount app.assets => config.assets.prefix
|
73
|
+
end
|
72
74
|
end
|
73
75
|
|
74
|
-
if config.
|
76
|
+
if config.assets.digest
|
75
77
|
app.assets = app.assets.index
|
76
78
|
end
|
77
79
|
end
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 977940594
|
5
|
+
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
|
9
|
+
- 1
|
10
|
+
- rc1
|
11
|
+
version: 3.1.1.rc1
|
11
12
|
platform: ruby
|
12
13
|
authors:
|
13
14
|
- David Heinemeier Hansson
|
@@ -15,7 +16,8 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2011-
|
19
|
+
date: 2011-09-14 00:00:00 -07:00
|
20
|
+
default_executable:
|
19
21
|
dependencies:
|
20
22
|
- !ruby/object:Gem::Dependency
|
21
23
|
name: activesupport
|
@@ -25,12 +27,13 @@ dependencies:
|
|
25
27
|
requirements:
|
26
28
|
- - "="
|
27
29
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
30
|
+
hash: 977940594
|
29
31
|
segments:
|
30
32
|
- 3
|
31
33
|
- 1
|
32
|
-
-
|
33
|
-
|
34
|
+
- 1
|
35
|
+
- rc1
|
36
|
+
version: 3.1.1.rc1
|
34
37
|
type: :runtime
|
35
38
|
version_requirements: *id001
|
36
39
|
- !ruby/object:Gem::Dependency
|
@@ -41,12 +44,13 @@ dependencies:
|
|
41
44
|
requirements:
|
42
45
|
- - "="
|
43
46
|
- !ruby/object:Gem::Version
|
44
|
-
hash:
|
47
|
+
hash: 977940594
|
45
48
|
segments:
|
46
49
|
- 3
|
47
50
|
- 1
|
48
|
-
-
|
49
|
-
|
51
|
+
- 1
|
52
|
+
- rc1
|
53
|
+
version: 3.1.1.rc1
|
50
54
|
type: :runtime
|
51
55
|
version_requirements: *id002
|
52
56
|
- !ruby/object:Gem::Dependency
|
@@ -386,6 +390,7 @@ files:
|
|
386
390
|
- lib/sprockets/helpers/rails_helper.rb
|
387
391
|
- lib/sprockets/helpers.rb
|
388
392
|
- lib/sprockets/railtie.rb
|
393
|
+
has_rdoc: true
|
389
394
|
homepage: http://www.rubyonrails.org
|
390
395
|
licenses: []
|
391
396
|
|
@@ -408,16 +413,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
408
413
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
409
414
|
none: false
|
410
415
|
requirements:
|
411
|
-
- - "
|
416
|
+
- - ">"
|
412
417
|
- !ruby/object:Gem::Version
|
413
|
-
hash:
|
418
|
+
hash: 25
|
414
419
|
segments:
|
415
|
-
-
|
416
|
-
|
420
|
+
- 1
|
421
|
+
- 3
|
422
|
+
- 1
|
423
|
+
version: 1.3.1
|
417
424
|
requirements:
|
418
425
|
- none
|
419
426
|
rubyforge_project:
|
420
|
-
rubygems_version: 1.
|
427
|
+
rubygems_version: 1.3.7
|
421
428
|
signing_key:
|
422
429
|
specification_version: 3
|
423
430
|
summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
|