Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
354709fe
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
354709fe
编写于
6月 21, 2011
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename AV::Helpers::AssetPaths to AV::AssetPaths to solve autoload mess.
上级
a803aec0
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
84 addition
and
81 deletion
+84
-81
actionpack/lib/action_view.rb
actionpack/lib/action_view.rb
+1
-0
actionpack/lib/action_view/asset_paths.rb
actionpack/lib/action_view/asset_paths.rb
+79
-0
actionpack/lib/action_view/helpers/asset_paths.rb
actionpack/lib/action_view/helpers/asset_paths.rb
+3
-79
actionpack/lib/action_view/helpers/asset_tag_helpers/asset_paths.rb
.../lib/action_view/helpers/asset_tag_helpers/asset_paths.rb
+1
-2
未找到文件。
actionpack/lib/action_view.rb
浏览文件 @
354709fe
...
...
@@ -30,6 +30,7 @@ module ActionView
extend
ActiveSupport
::
Autoload
eager_autoload
do
autoload
:AssetPaths
autoload
:Base
autoload
:Context
autoload
:Helpers
...
...
actionpack/lib/action_view/asset_paths.rb
0 → 100644
浏览文件 @
354709fe
require
'active_support/core_ext/file'
module
ActionView
class
AssetPaths
#:nodoc:
attr_reader
:config
,
:controller
def
initialize
(
config
,
controller
)
@config
=
config
@controller
=
controller
end
# Add the extension +ext+ if not present. Return full or scheme-relative URLs otherwise untouched.
# Prefix with <tt>/dir/</tt> if lacking a leading +/+. Account for relative URL
# roots. Rewrite the asset path for cache-busting asset ids. Include
# asset host, if configured, with the correct request protocol.
def
compute_public_path
(
source
,
dir
,
ext
=
nil
,
include_host
=
true
)
source
=
source
.
to_s
return
source
if
is_uri?
(
source
)
source
=
rewrite_extension
(
source
,
dir
,
ext
)
if
ext
source
=
rewrite_asset_path
(
source
,
dir
)
if
controller
&&
include_host
has_request
=
controller
.
respond_to?
(
:request
)
source
=
rewrite_host_and_protocol
(
source
,
has_request
)
end
source
end
def
is_uri?
(
path
)
path
=~
%r{^[-a-z]+://|^cid:|^//}
end
private
def
rewrite_extension
(
source
,
dir
,
ext
)
raise
NotImplementedError
end
def
rewrite_asset_path
(
source
,
path
=
nil
)
raise
NotImplementedError
end
def
rewrite_relative_url_root
(
source
,
relative_url_root
)
relative_url_root
&&
!
source
.
starts_with?
(
"
#{
relative_url_root
}
/"
)
?
"
#{
relative_url_root
}#{
source
}
"
:
source
end
def
rewrite_host_and_protocol
(
source
,
has_request
)
source
=
rewrite_relative_url_root
(
source
,
controller
.
config
.
relative_url_root
)
if
has_request
host
=
compute_asset_host
(
source
)
if
has_request
&&
host
&&
!
is_uri?
(
host
)
host
=
"
#{
controller
.
request
.
protocol
}#{
host
}
"
end
"
#{
host
}#{
source
}
"
end
# Pick an asset host for this source. Returns +nil+ if no host is set,
# the host if no wildcard is set, the host interpolated with the
# numbers 0-3 if it contains <tt>%d</tt> (the number is the source hash mod 4),
# or the value returned from invoking call on an object responding to call
# (proc or otherwise).
def
compute_asset_host
(
source
)
if
host
=
config
.
asset_host
if
host
.
respond_to?
(
:call
)
case
host
.
is_a?
(
Proc
)
?
host
.
arity
:
host
.
method
(
:call
).
arity
when
2
request
=
controller
.
respond_to?
(
:request
)
&&
controller
.
request
host
.
call
(
source
,
request
)
else
host
.
call
(
source
)
end
else
(
host
=~
/%d/
)
?
host
%
(
source
.
hash
%
4
)
:
host
end
end
end
end
end
actionpack/lib/action_view/helpers/asset_paths.rb
浏览文件 @
354709fe
require
'active_support/core_ext/file'
ActiveSupport
::
Deprecation
.
warn
"ActionView::Helpers::AssetPaths is deprecated. Please use ActionView::AssetPaths instead."
module
ActionView
module
Helpers
class
AssetPaths
#:nodoc:
attr_reader
:config
,
:controller
def
initialize
(
config
,
controller
)
@config
=
config
@controller
=
controller
end
# Add the extension +ext+ if not present. Return full or scheme-relative URLs otherwise untouched.
# Prefix with <tt>/dir/</tt> if lacking a leading +/+. Account for relative URL
# roots. Rewrite the asset path for cache-busting asset ids. Include
# asset host, if configured, with the correct request protocol.
def
compute_public_path
(
source
,
dir
,
ext
=
nil
,
include_host
=
true
)
source
=
source
.
to_s
return
source
if
is_uri?
(
source
)
source
=
rewrite_extension
(
source
,
dir
,
ext
)
if
ext
source
=
rewrite_asset_path
(
source
,
dir
)
if
controller
&&
include_host
has_request
=
controller
.
respond_to?
(
:request
)
source
=
rewrite_host_and_protocol
(
source
,
has_request
)
end
source
end
def
is_uri?
(
path
)
path
=~
%r{^[-a-z]+://|^cid:|^//}
end
private
def
rewrite_extension
(
source
,
dir
,
ext
)
raise
NotImplementedError
end
def
rewrite_asset_path
(
source
,
path
=
nil
)
raise
NotImplementedError
end
def
rewrite_relative_url_root
(
source
,
relative_url_root
)
relative_url_root
&&
!
source
.
starts_with?
(
"
#{
relative_url_root
}
/"
)
?
"
#{
relative_url_root
}#{
source
}
"
:
source
end
def
rewrite_host_and_protocol
(
source
,
has_request
)
source
=
rewrite_relative_url_root
(
source
,
controller
.
config
.
relative_url_root
)
if
has_request
host
=
compute_asset_host
(
source
)
if
has_request
&&
host
&&
!
is_uri?
(
host
)
host
=
"
#{
controller
.
request
.
protocol
}#{
host
}
"
end
"
#{
host
}#{
source
}
"
end
# Pick an asset host for this source. Returns +nil+ if no host is set,
# the host if no wildcard is set, the host interpolated with the
# numbers 0-3 if it contains <tt>%d</tt> (the number is the source hash mod 4),
# or the value returned from invoking call on an object responding to call
# (proc or otherwise).
def
compute_asset_host
(
source
)
if
host
=
config
.
asset_host
if
host
.
respond_to?
(
:call
)
case
host
.
is_a?
(
Proc
)
?
host
.
arity
:
host
.
method
(
:call
).
arity
when
2
request
=
controller
.
respond_to?
(
:request
)
&&
controller
.
request
host
.
call
(
source
,
request
)
else
host
.
call
(
source
)
end
else
(
host
=~
/%d/
)
?
host
%
(
source
.
hash
%
4
)
:
host
end
end
end
end
AssetPaths
=
::
ActionView
::
AssetPaths
end
end
end
\ No newline at end of file
actionpack/lib/action_view/helpers/asset_tag_helpers/asset_paths.rb
浏览文件 @
354709fe
require
'active_support/core_ext/file'
require
'action_view/helpers/asset_paths'
module
ActionView
module
Helpers
module
AssetTagHelper
class
AssetPaths
<
ActionView
::
Helpers
::
AssetPaths
#:nodoc:
class
AssetPaths
<
::
ActionView
::
AssetPaths
#:nodoc:
# You can enable or disable the asset tag ids cache.
# With the cache enabled, the asset tag helper methods will make fewer
# expensive file system calls (the default implementation checks the file
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录