理解Ruby块。Rspec为什么这样做?
我试图理解何时使用Ruby块,我发现为了配置rspec rails,您需要执行以下操作:理解Ruby块。Rspec为什么这样做?,ruby,Ruby,我试图理解何时使用Ruby块,我发现为了配置rspec rails,您需要执行以下操作: RSpec::configure do |config| config.foo = bar end 为什么在这种情况下,将其作为块来执行会很有用?在块中,您可以更改范围。我相信你在这里的范围是RSpec,在街区内。我还认为,在块映像中只需说config.foo=bar是一种方便,因为您有20多个配置 在块中,可以更改范围。我相信你在这里的范围是RSpec,在街区内。我还认为,在块映像中只需说confi
RSpec::configure do |config|
config.foo = bar
end
为什么在这种情况下,将其作为块来执行会很有用?在块中,您可以更改范围。我相信你在这里的范围是RSpec,在街区内。我还认为,在块映像中只需说config.foo=bar是一种方便,因为您有20多个配置 在块中,可以更改范围。我相信你在这里的范围是RSpec,在街区内。我还认为,在块映像中只需说config.foo=bar是一种方便,因为您有20多个配置 只是糖。这是简化的来源:
module Rspec
def self.configuration
@configuration ||= RSpec::Core::Configuration.new
end
def self.configure
yield configuration if block_given?
end
# rest omitted
end
请参阅
这意味着你也可以写作
config = Rspec.configuration
config.foo = bar
只是糖。这是简化的来源:
module Rspec
def self.configuration
@configuration ||= RSpec::Core::Configuration.new
end
def self.configure
yield configuration if block_given?
end
# rest omitted
end
请参阅
这意味着你也可以写作
config = Rspec.configuration
config.foo = bar
因为用RSpec.configuration作为前缀会很麻烦。你更喜欢哪个
RSpec.configuration.some_config_option = 5
RSpec.configuration.some_other_config_option = 6
RSpec.configuration.yet_another_config_option = :foo
或:
显然,您可以编写c=RSpec.configuration,然后使用c。之后的语法…但该块也很好地限定了配置代码的范围。因为在所有代码前面加上RSpec.configuration会很麻烦。你更喜欢哪个
RSpec.configuration.some_config_option = 5
RSpec.configuration.some_other_config_option = 6
RSpec.configuration.yet_another_config_option = :foo
或:
显然,您可以编写c=RSpec.configuration,然后使用c。之后的语法…但是块也很好地限定了配置代码的范围