Sha256: 7333277de01f58ceae8c92962228acbcf1544535740eac80f7d8e4fb6d7f2ab6

Contents?: true

Size: 1.67 KB

Versions: 13

Compression:

Stored size: 1.67 KB

Contents

module RulesEngine  
  module Process
    
    AUDIT_NONE    =   0
    AUDIT_INFO    =   1
    AUDIT_SUCCESS =   2
    AUDIT_FAILURE =   3

    autoload :DbAuditor, 'rules_engine/process/auditor/db_auditor'
    
    class << self

      def auditor=(auditor_options)
        type, *parameters = *([ auditor_options ].flatten)

        case type
        when Symbol
          auditor_class_name = type.to_s.camelize
          auditor_class = RulesEngine::Process.const_get(auditor_class_name)
          @auditor = auditor_class.new(*parameters)
        when nil
          @auditor = Auditor.new
        else
          @auditor = auditor_options
        end
      end

      def auditor
        @auditor ||= Auditor.new 
      end      
    end
    
    class Auditor
      attr_accessor :audit_level

      def audit(process_id, message, code = RulesEngine::Process::AUDIT_INFO)
        if perform_audit?(code)
          if defined?(Rails) && Rails.logger 
            case code
            when RulesEngine::Process::AUDIT_FAILURE
              Rails.logger.error("#{'*' * 5} #{process_id}, #{code}, #{message}")
            else # when RulesEngine::Process::AUDIT_INFO, RulesEngine::Process::AUDIT_SUCCESS
              Rails.logger.info("#{'*' * 5} #{process_id}, #{code}, #{message}")
            end
          else  
            $stderr.puts("#{'*' * 5} #{process_id}, #{code}, #{message}")
          end
        end   
      end
    
      def history(process_id, options = {})
        {
          "audits" => []
        }  
      end
    
      def perform_audit?(code)
        audit_level.nil? || (audit_level != RulesEngine::Process::AUDIT_NONE && code >= audit_level)
      end
    end  
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rules_engine-0.3.3 lib/rules_engine/process/auditor.rb
rules_engine-0.3.2 lib/rules_engine/process/auditor.rb
rules_engine-0.3.1 lib/rules_engine/process/auditor.rb
rules_engine-0.3.0 lib/rules_engine/process/auditor.rb
rules_engine-0.2.0 lib/rules_engine/process/auditor.rb
rules_engine-0.1.10 lib/rules_engine/process/auditor.rb
rules_engine-0.1.9 lib/rules_engine/process/auditor.rb
rules_engine-0.1.8 lib/rules_engine/process/auditor.rb
rules_engine-0.1.7 lib/rules_engine/process/auditor.rb
rules_engine-0.1.6 lib/rules_engine/process/auditor.rb
rules_engine-0.1.5 lib/rules_engine/process/auditor.rb
rules_engine-0.1.4 lib/rules_engine/process/auditor.rb
rules_engine-0.1.3 lib/rules_engine/process/auditor.rb