Sha256: c2bc513c967ce49da54a090fdc963790e7c94b528d35355eb3377f8ddd59fadc

Contents?: true

Size: 628 Bytes

Versions: 2

Compression:

Stored size: 628 Bytes

Contents

require 'puppet-lint'
require_relative 'rules/rule'
require_relative 'rules/hard_coded_credentials_rule'
require_relative 'rules/no_http_rule'


class RuleEngine
  @rules=[HardCodedCredentialsRule,NoHTTPRule]

  class << self
    attr_accessor :rules
  end

  def self.getTokens(code)
    lexer = PuppetLint::Lexer.new
    tokens = lexer.tokenise(code)
    return tokens
  end

  def self.analyzeDocument(code)
    result=[]
    tokens = self.getTokens(code)

    @rules.each do |rule|
      if rule.configurations[0].value
        (result << rule.AnalyzeTokens(tokens)).flatten!
      end
    end

    return result
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puppet-sec-lint-0.1.2 lib/rule_engine.rb
puppet-sec-lint-0.1.1 lib/rule_engine.rb