class Ducalis::StringsInActiverecords

Constants

OFFENSE
VALIDATEBLE_METHODS

Public Instance Methods

on_send(node) click to toggle source
# File lib/ducalis/cops/strings_in_activerecords.rb, line 18
def on_send(node)
  _, method_name, *args = *node
  return unless VALIDATEBLE_METHODS.include?(method_name)
  return if args.empty?

  node.to_a.last.each_child_node do |current_node|
    next if skip_node?(current_node)

    add_offense(node, :selector, format(OFFENSE, method_name: method_name))
  end
end

Private Instance Methods

skip_node?(current_node) click to toggle source
# File lib/ducalis/cops/strings_in_activerecords.rb, line 32
def skip_node?(current_node)
  key, value = *current_node
  return true unless current_node.type == :pair
  return true unless %w[if unless].include?(key.source)
  return true unless value.type == :str

  false
end