ame*_*ior 2 ruby ruby-on-rails require
我在我新继承的 ruby/rails 项目中看到了这一点,并想知道:
module Canonicalizer
# Redirects the client to the canonical url
#
# @return [undefined]
#
# @api private
def redirect_to_canonical_url
if request.get? && !canonical_url?
redirect_to canonical_url, status: :moved_permanently
false
else
true
end
end
# Test if the current request URL is canonical
#
# @return [Boolean]
#
# @api private
def canonical_url?
request.path == canonical_url
end
end
require 'canonicalizer/hub_page_canonical'
Run Code Online (Sandbox Code Playgroud)
Ruby 代码没有被编译,它[主要] 被处理,因为它涉及到解析器。也就是说,以下两段代码是不等价的:
class Foo; def foo; :first; end; end
class Foo; def foo; :second; end; end
Foo.new.foo #? :second
Run Code Online (Sandbox Code Playgroud)
对比
class Foo; def foo; :second; end; end
class Foo; def foo; :first; end; end
Foo.new.foo #? :first
Run Code Online (Sandbox Code Playgroud)
此外,Kernel#require是在Kernel模块上定义的常规函数。我可以认为'canonicalizer/hub_page_canonical'文件依赖于Canonicalizer模块(例如,它包含类的定义include Canonicalizer。)为此,必须预先声明包含的模块,因此require在其定义之后。
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |