class RuboCop::Cop::RSpec::Focus
Checks if examples are focused.
@example
# bad describe MyClass, focus: true do end describe MyClass, :focus do end fdescribe MyClass do end # good describe MyClass do end
Constants
- MSG
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/rspec/focus.rb, line 51 def on_send(node) focus_metadata(node) do |focus| add_offense(focus) do |corrector| if focus.pair_type? || focus.str_type? || focus.sym_type? corrector.remove(with_surrounding(focus)) elsif focus.send_type? correct_send(corrector, focus) end end end end
Private Instance Methods
correct_send(corrector, focus)
click to toggle source
# File lib/rubocop/cop/rspec/focus.rb, line 80 def correct_send(corrector, focus) range = focus.loc.selector unfocused = focus.method_name.to_s.sub(/^f/, '') unless Examples.regular(unfocused) || ExampleGroups.regular(unfocused) return end corrector.replace(range, range.source.sub(focus.method_name.to_s, unfocused)) end
focus_metadata(node) { |node| ... }
click to toggle source
# File lib/rubocop/cop/rspec/focus.rb, line 65 def focus_metadata(node, &block) yield(node) if focused_block?(node) metadata(node, &block) end
with_surrounding(focus)
click to toggle source
# File lib/rubocop/cop/rspec/focus.rb, line 71 def with_surrounding(focus) range_with_space = range_with_surrounding_space( range: focus.loc.expression, side: :left ) range_with_surrounding_comma(range_with_space, :left) end