diff --git a/lib/rubocop/cop/rspec/focus.rb b/lib/rubocop/cop/rspec/focus.rb index 246352ad5..98c7a36a7 100644 --- a/lib/rubocop/cop/rspec/focus.rb +++ b/lib/rubocop/cop/rspec/focus.rb @@ -72,28 +72,26 @@ class Focus < Base (send #rspec? {#ExampleGroups.focused #Examples.focused} ...) PATTERN + # rubocop:disable Metrics/MethodLength def on_send(node) return if node.chained? || node.each_ancestor(:def, :defs).any? - focus_metadata(node) do |focus| - add_offense(focus) do |corrector| - if focus.pair_type? || focus.str_type? || focus.sym_type? + if focused_block?(node) + add_offense(node) do |corrector| + correct_send(corrector, node) + end + else + metadata(node) do |focus| + add_offense(focus) do |corrector| corrector.remove(with_surrounding(focus)) - elsif focus.send_type? - correct_send(corrector, focus) end end end end + # rubocop:enable Metrics/MethodLength private - def focus_metadata(node, &block) - yield(node) if focused_block?(node) - - metadata(node, &block) - end - def with_surrounding(focus) range_with_space = range_with_surrounding_space(focus.source_range, side: :left)