此源代码中声明的范围变量在哪里?
Where is the scope variable declared in this source code?
我一直在查看设计的源代码,我一直无法弄清楚下面的代码块是如何工作的(full source here)
def mapping
@mapping ||= begin
mapping = Devise.mappings[scope]
raise "Could not find mapping for #{scope}" unless mapping
mapping
end
end
我认为理解这段代码的大部分内容,但无法找到范围变量的位置 declared/defined。我搜索了存储库(以及它继承自的存储库),并查看了可用的测试以尝试更好地了解这里发生的事情,但在任何地方都找不到 scope
变量的任何提及。我仍在学习 ruby,所以我是否遗漏了一些我在这里工作时不知道的 obvious/a 语言结构?
这是 warden
东西。看看这个
https://github.com/wardencommunity/warden/blob/master/lib/warden/strategies/base.rb
这一行
class Base < ::Warden::Strategies::Base
应该给了你一个提示 :)
我一直在查看设计的源代码,我一直无法弄清楚下面的代码块是如何工作的(full source here)
def mapping
@mapping ||= begin
mapping = Devise.mappings[scope]
raise "Could not find mapping for #{scope}" unless mapping
mapping
end
end
我认为理解这段代码的大部分内容,但无法找到范围变量的位置 declared/defined。我搜索了存储库(以及它继承自的存储库),并查看了可用的测试以尝试更好地了解这里发生的事情,但在任何地方都找不到 scope
变量的任何提及。我仍在学习 ruby,所以我是否遗漏了一些我在这里工作时不知道的 obvious/a 语言结构?
这是 warden
东西。看看这个
https://github.com/wardencommunity/warden/blob/master/lib/warden/strategies/base.rb
这一行
class Base < ::Warden::Strategies::Base
应该给了你一个提示 :)