Sha256: 45aee425616d53802508cc7cc038407763ee78aee3ebe279ccf4a908a0da9557

Contents?: true

Size: 777 Bytes

Versions: 3

Compression:

Stored size: 777 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(build_options(node, line_count)) 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

3 entries across 3 versions & 1 rubygems

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