Sha256: 8888baf725d128097cbb2c3668214c62c866f8692e79f563705fc8f968c6feaf

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

module Pione
  module RuleEngine
    # Exception class for rule execution failure.
    class RuleExecutionError < StandardError
      def initialize(handler)
        @handler = handler
      end

      def message
        "Execution error when handling the rule '%s': inputs=%s, output=%s, params=%s" % [
          @handler.rule.path,
          @handler.inputs,
          @handler.outputs,
          @handler.params.inspect
        ]
      end
    end

    class ActionError < StandardError
      def initialize(digest, report)
        @digest = digest
        @report = report
      end

      def message
        "Action rule %s has errored:\n%s" % [@digest, @report]
      end
    end

    class InvalidOutputError < RuleExecutionError
      def initialize(handler, outputs)
        super(handler)
        @outputs = outputs
      end

      def message
        args = [@handler.rule_name, @handler.package_id, @outputs]
        "Outputs of rule '%s' in package &%s are invalid: %s" % args
      end
    end

    class UnknownRule < StandardError; end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pione-0.3.2 lib/pione/rule-engine/engine-exception.rb
pione-0.3.1 lib/pione/rule-engine/engine-exception.rb