我正在研究 Spree 的源代码,我遇到了代码片段。
Spree.config do |config|
# Example:
# Uncomment to override the default site name.
# config.site_name = "Spree Demo Site"
end
这是如何实施的?我找不到在任何地方定义为方法的 Spree.config。我猜这涉及到一些元编程。
我正在研究 Spree 的源代码,我遇到了代码片段。
Spree.config do |config|
# Example:
# Uncomment to override the default site name.
# config.site_name = "Spree Demo Site"
end
这是如何实施的?我找不到在任何地方定义为方法的 Spree.config。我猜这涉及到一些元编程。
看起来它是在https://github.com/spree/spree/blob/master/core/lib/spree/core.rb中定义的(此时第 68 行)。
config
是模块上的模块方法Spree
。它的实现将Spree::Config
对象传递给给定的块。