class Ducalis::UselessOnly

Constants

DETAILS
FILTERS
OFFENSE

Public Instance Methods

on_send(node) click to toggle source
# File lib/ducalis/cops/useless_only.rb, line 31
def on_send(node)
  _, method_name, *args = *node
  hash_node = args.find { |subnode| subnode.type == :hash }
  return unless FILTERS.include?(method_name) && hash_node

  type, method_names = decomposite_hash(hash_node)
  return unless type == s(:sym, :only)
  return unless method_names.children.count == 1

  add_offense(node, :selector, OFFENSE)
end

Private Instance Methods

decomposite_hash(args) click to toggle source
# File lib/ducalis/cops/useless_only.rb, line 45
def decomposite_hash(args)
  args.to_a.first.children.to_a
end