class RuboCop::Cop::RSpec::VariableDefinition
let(‘user_name’) { ‘Adam’ }
subject(‘user’) { create_user }
# good
let(:user_name) { ‘Adam’ }
subject(:user) { create_user }
# bad
@example EnforcedStyle: strings
let(:user_name) { ‘Adam’ }
subject(:user) { create_user }
# good
let(‘user_name’) { ‘Adam’ }
subject(‘user’) { create_user }
# bad
@example EnforcedStyle: symbols (default)
Checks that memoized helpers names are symbols or strings.
def correct_variable(variable)
def correct_variable(variable) case variable.type when :dsym variable.source[1..] when :sym variable.value.to_s.inspect else variable.value.to_sym.inspect end end
def on_send(node)
def on_send(node) return unless inside_example_group?(node) variable_definition?(node) do |variable| next unless style_offense?(variable) add_offense( variable, message: format(MSG, style: style) ) do |corrector| corrector.replace(variable, correct_variable(variable)) end end end
def string?(node)
def string?(node) node.str_type? end
def style_offense?(variable)
def style_offense?(variable) (style == :symbols && string?(variable)) || (style == :strings && symbol?(variable)) end
def symbol?(node)
def symbol?(node) node.type?(:sym, :dsym) end