Sha256: 6aae99d82e346ba76adf34079e70626966f39384580e9ab2474fddd729cb0337

Contents?: true

Size: 827 Bytes

Versions: 7

Compression:

Stored size: 827 Bytes

Contents

require 'roodi/checks/check'

module Roodi
  module Checks
    class LineCountCheck < Check
      def initialize(interesting_nodes, line_count, message_prefix)
        super()
        @interesting_nodes = interesting_nodes
        @line_count = line_count
        @message_prefix = message_prefix
      end

      def interesting_nodes
        @interesting_nodes
      end

      def evaluate(node)
        line_count = count_lines(node)
        add_error "#{@message_prefix} \"#{node[1]}\" has #{line_count} lines.  It should have #{@line_count} or less." unless line_count <= @line_count
      end

      protected
  
      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

7 entries across 7 versions & 1 rubygems

Version Path
roodi-1.3.7 lib/roodi/checks/line_count_check.rb
roodi-1.3.2 lib/roodi/checks/line_count_check.rb
roodi-1.3.0 lib/roodi/checks/line_count_check.rb
roodi-1.3.5 lib/roodi/checks/line_count_check.rb
roodi-1.3.6 lib/roodi/checks/line_count_check.rb
roodi-1.3.3 lib/roodi/checks/line_count_check.rb
roodi-1.3.4 lib/roodi/checks/line_count_check.rb