Sha256: 2e7d79e78b76c58bea1fec581d052ae84f6d735802f792d7b74b516bab0fe418

Contents?: true

Size: 692 Bytes

Versions: 1

Compression:

Stored size: 692 Bytes

Contents

require 'syntax_finder'

# Check def with paren or no paren

class DefParamsFinder < SyntaxFinder
  def look node
    if node.type == :def_node
      inc :def
      if node.parameters
        params = {
          required: node.parameters.requireds.size,
          optional: node.parameters.optionals.size,
          rest: !node.parameters.rest.nil?,
          posts: node.parameters.posts.size,
          keywords: node.parameters.keywords.size,
          keyword_rest: !node.parameters.keyword_rest.nil?
        }.reject { |_, v| v == 0 || v == false }
      else
        params = {required: 0}
      end

      unless inc params
        note params, nloc(node)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
syntax_finder-0.1.0 samples/def_params_finder.rb