class Rookout::Augs::AugsManager

Public Class Methods

new(trigger_services, output) click to toggle source
# File lib/rookout/augs/augs_manager.rb, line 10
def initialize trigger_services, output
  @trigger_services = trigger_services
  @output = output
  @aug_factory = AugFactory.new @output
  @augs = []
end

Public Instance Methods

add_aug(configuration) click to toggle source
# File lib/rookout/augs/augs_manager.rb, line 35
def add_aug configuration
  begin
    aug = @aug_factory.create_aug configuration
  rescue StandardError => e
    message = "Failed to parse aug"
    Logger.instance.exception message, e

    begin
      aug_id = configuration["id"]
    rescue StandardError
      return
    end

    error = Rookout::Processor::RookError.new e, message
    @output.send_rule_status aug_id, "Error", error
    return
  end

  if @augs.include? aug.id
    Logger.instance.debug "Aug already set - #{aug.id}"
    return
  end

  Logger.instance.debug "Adding aug-\t#{aug.id}"

  aug.add_aug @trigger_services
  @augs.push aug.id
end
clear_augs() click to toggle source
# File lib/rookout/augs/augs_manager.rb, line 71
def clear_augs
  Logger.instance.debug "Clearing all augs"

  @augs.clone.each { |aug| remove_aug aug }
  @trigger_services.clear_augs
end
initialize_augs(augs) click to toggle source
# File lib/rookout/augs/augs_manager.rb, line 17
def initialize_augs augs
  leftovers = @augs.clone

  augs.each do |aug|
    begin
      aug_id = aug["id"]
    rescue KeyError
      next
    end

    leftovers.delete aug_id

    add_aug aug
  end

  leftovers.each { |aug_id| remove_aug aug_id }
end
remove_aug(aug_id) click to toggle source
# File lib/rookout/augs/augs_manager.rb, line 64
def remove_aug aug_id
  Logger.instance.debug "Removing aug-\t#{aug_id}"

  @trigger_services.remove_aug aug_id
  @augs.delete aug_id
end