class SoarAuditingProviderAPI::AuditingProviderAPI

Constants

DEFAULT

Attributes

auditor[RW]
auditors[RW]

Public Class Methods

new(auditors) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 8
def initialize(auditors)
  raise ArgumentError.new("Invalid auditors provided") if not auditors.is_a?(Hash)
  raise ArgumentError.new("No auditors provided") if auditors.nil? or auditors.empty?
  @auditors = auditors
end

Public Instance Methods

<<(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 18
def <<(data)
  @auditor.info(data)
end
debug(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 14
def debug(data)
  @auditor.debug(data)
end
error(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 26
def error(data)
  @auditor.error(data)
end
fatal(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 34
def fatal(data)
  @auditor.fatal(data)
end
info(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 22
def info(data)
  @auditor.info(data)
end
select(nfrs = DEFAULT) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 38
def select(nfrs = DEFAULT)
  if nfrs.nil? or nfrs.empty?
    auditor_selected = auditors.keys.first
  else
    auditor_selected = nil
    auditors.each do |auditor, configuration|
      auditor_nfrs = configuration['nfrs']
      nfrs_matched = true
      nfrs.each do |nfr, value|
        nfrs_matched = false if not auditor_nfrs[nfr] or (auditor_nfrs[nfr] != value)
      end
      if nfrs_matched
        auditor_selected = auditor
        break
      end
    end
    raise NFRMatchError.new("Could not match NFRs to an auditor") if auditor_selected.nil?
  end
  configuration = auditors[auditor_selected]
  @auditor = auditor_selected
  return @auditor, configuration
end
warn(data) click to toggle source
# File lib/soar_auditing_provider_api/auditing_provider_api.rb, line 30
def warn(data)
  @auditor.warn(data)
end