Sha256: 1f2645b30ac8a29342735e5ce666a490df54b76f308ab7f219e8a9f511f49ebd

Contents?: true

Size: 687 Bytes

Versions: 3

Compression:

Stored size: 687 Bytes

Contents

require 'roodi/checks/check'

module Roodi

  module Checks

    class ParameterNumberCheck < Check

      DEFAULT_PARAMETER_COUNT = 3

      def initialize(options = {})
        super()
        @parameter_count = options['parameter_count'] || DEFAULT_PARAMETER_COUNT
      end

      def interesting_nodes
        [:defn]
      end

      def evaluate(node)
        method_name = node[1]
        arguments = node[2][1][1]
        parameter_count = arguments.inject(-1) { |count, each| count = count + (each.class == Symbol ? 1 : 0) }
        add_error({ :method => method_name, :parameters => parameter_count }) unless parameter_count <= @parameter_count
      end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
marcoow-roodi-1.3.2 lib/roodi/checks/parameter_number_check.rb
marcoow-roodi-1.3.4 lib/roodi/checks/parameter_number_check.rb
marcoow-roodi-1.3.5 lib/roodi/checks/parameter_number_check.rb