class RuboCop::Cop::RSpec::VerifiedDoubleReference

end
instance_double(@klass, method_name: ‘returned_value’)
let(:foo) do
# good
@example Reference is not in the supported style list. No enforcement
end
instance_double(‘ClassName’, method_name: ‘returned_value’)
let(:foo) do
# good
end
instance_double(ClassName, method_name: ‘returned_value’)
let(:foo) do
# bad
@example ‘EnforcedStyle: string`
end
instance_double(ClassName, method_name: ’returned_value’)
let(:foo) do
# good
end
instance_double(‘ClassName’, method_name: ‘returned_value’)
let(:foo) do
# bad
@example ‘EnforcedStyle: constant` (default)
`EnforcedStyle` option and supports `–auto-gen-config`.
This cop can be configured in your configuration using the
@see rspec.info/features/3-12/rspec-mocks/verifying-doubles<br><br>Only investigates references that are one of the supported styles.
Checks for consistent verified double reference style.

def correct_style(offense)

def correct_style(offense)
  if style == :string
    "'#{offense}'"
  else
    offense.gsub(/^['"]|['"]$/, '')
  end
end

def on_send(node)

def on_send(node)
  verified_double(node) do |class_reference|
    break correct_style_detected unless opposing_style?(class_reference)
    message = format(MSG, style: style)
    expression = class_reference.source_range
    add_offense(expression, message: message) do |corrector|
      offense = class_reference.source
      corrector.replace(expression, correct_style(offense))
      opposite_style_detected
    end
  end
end

def opposing_style?(class_reference)

def opposing_style?(class_reference)
  class_reference_style = REFERENCE_TYPE_STYLES[class_reference.type]
  # Only enforce supported styles
  return false unless class_reference_style
  class_reference_style != style
end