Sha256: c9ea35c87a114f3693e94de4665edf9c250f07133a5b0e29cae8b45a86374989

Contents?: true

Size: 703 Bytes

Versions: 4

Compression:

Stored size: 703 Bytes

Contents

require 'roodi/checks/check'

module Roodi
  module Checks
    class MethodLineCountCheck < Check
      def initialize(line_count = 20)
        super()
        @line_count = line_count
      end
      
      def interesting_nodes
        [:defn]
      end

      def evaluate(node)
        line_count = count_lines(node)
        add_error "Method name \"#{node[1]}\" has #{line_count} lines.  It should have #{@line_count} or less." unless line_count <= @line_count
      end
  
      private
  
      def count_lines(node)
        count = 0
        count = count + 1 if node.node_type == :newline
        node.children.each {|node| count += count_lines(node)}
        count
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
roodi-0.5 lib/roodi/checks/method_line_count_check.rb
roodi-1.1.0 lib/roodi/checks/method_line_count_check.rb
roodi-1.1.1 lib/roodi/checks/method_line_count_check.rb
roodi-1.2.0 lib/roodi/checks/method_line_count_check.rb