class RuboCop::Cop::RSpec::ClassCheck
expect(object).to be_a_kind_of(String)
expect(object).to be_kind_of(String)
# good
expect(object).to be_an(String)
expect(object).to be_a(String)
# bad
@example EnforcedStyle: be_kind_of
expect(object).to be_an(String)
expect(object).to be_a(String)
# good
expect(object).to be_a_kind_of(String)
expect(object).to be_kind_of(String)
# bad
@example EnforcedStyle: be_a (default)
Enforces consistent use of ‘be_a` or `be_kind_of`.
def autocorrect(corrector, node)
def autocorrect(corrector, node) corrector.replace(node.loc.selector, preferred_method_name) end
def format_message(node)
def format_message(node) format( MSG, current: node.method_name, preferred: preferred_method_name ) end
def offending?(node)
def offending?(node) !node.receiver && !preferred_method_name?(node.method_name) end
def on_send(node)
def on_send(node) return unless offending?(node) add_offense( node.loc.selector, message: format_message(node) ) do |corrector| autocorrect(corrector, node) end end
def preferred_method_name
def preferred_method_name PREFERRED_METHOD_NAME_BY_STYLE[style] end
def preferred_method_name?(method_name)
def preferred_method_name?(method_name) preferred_method_names.include?(method_name) end
def preferred_method_names
def preferred_method_names if style == :be_a METHOD_NAMES_FOR_BE_A else METHOD_NAMES_FOR_KIND_OF end end