diff --git a/.rubocop.yml b/.rubocop.yml index 8009245da..16acc0b0e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -239,7 +239,11 @@ Performance/Squeeze: Performance/StringInclude: Enabled: true - +Performance/MethodObjectAsBlock: + Enabled: false + +Performance/BlockGivenWithExplicitBlock: + Enabled: false RSpec/ExampleWording: Enabled: false diff --git a/lib/capybara/result.rb b/lib/capybara/result.rb index 184a5b9c8..6103591e9 100644 --- a/lib/capybara/result.rb +++ b/lib/capybara/result.rb @@ -39,7 +39,7 @@ def initialize(elements, query) alias index find_index def each(&block) - return enum_for(:each) unless block_given? + return enum_for(:each) unless block @result_cache.each(&block) loop do diff --git a/lib/capybara/rspec/matcher_proxies.rb b/lib/capybara/rspec/matcher_proxies.rb index ba13cce40..3be8ec549 100644 --- a/lib/capybara/rspec/matcher_proxies.rb +++ b/lib/capybara/rspec/matcher_proxies.rb @@ -11,7 +11,7 @@ def all(*args, **kwargs, &block) end def within(*args, **kwargs, &block) - if block_given? + if block within_element(*args, **kwargs, &block) else be_within(*args) diff --git a/lib/capybara/selector/definition.rb b/lib/capybara/selector/definition.rb index 0670e0b3f..d3a58e948 100644 --- a/lib/capybara/selector/definition.rb +++ b/lib/capybara/selector/definition.rb @@ -178,7 +178,7 @@ def filter_set(name, filters_to_use = nil) def_delegator :@filter_set, :describe def describe_expression_filters(&block) - if block_given? + if block describe(:expression_filters, &block) else describe(:expression_filters) do |**options| diff --git a/lib/capybara/session.rb b/lib/capybara/session.rb index 48ecc87b6..2a98af7cd 100644 --- a/lib/capybara/session.rb +++ b/lib/capybara/session.rb @@ -489,8 +489,8 @@ def open_new_window(kind = :tab) # @raise [ArgumentError] if both or neither arguments were provided # def switch_to_window(window = nil, **options, &window_locator) - raise ArgumentError, '`switch_to_window` can take either a block or a window, not both' if window && block_given? - raise ArgumentError, '`switch_to_window`: either window or block should be provided' if !window && !block_given? + raise ArgumentError, '`switch_to_window` can take either a block or a window, not both' if window && window_locator + raise ArgumentError, '`switch_to_window`: either window or block should be provided' if !window && !window_locator unless scopes.last.nil? raise Capybara::ScopeError, '`switch_to_window` is not supposed to be invoked from '\