Sha256: 0d3eb0ff1813c3fa1d3942de2ecea1ad1b48237cee7b916a5cf90c0924a1e5a8

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

module Locabulary
  # Container for all exceptions in the Locabulary ecosystem
  module Exceptions
    class RuntimeError < ::RuntimeError
    end

    # There was a problem finding an item
    class ItemNotFoundError < RuntimeError
      def initialize(predicate_name, label)
        super("Unable to find label=#{label.inspect} for predicate_name=#{predicate_name.inspect}")
      end
    end

    # An error occurred in attempting to find a given predicate_name in the data store
    class MissingPredicateNameError < RuntimeError
    end

    # There is a problem with the hierarchy; A child is being defined without a defined parent.
    class MissingHierarchicalParentError < RuntimeError
      attr_reader :predicate_name, :error, :item
      def initialize(predicate_name, error, item = nil)
        @predicate_name = predicate_name
        @error = error
        @item = item
        message = ["Expected #{predicate_name.inspect} to have a welformed tree."]
        message << "With item #{item.inspect}." if item
        message << "Error: #{error}"
        super(message.join(" "))
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
locabulary-0.8.1 lib/locabulary/exceptions.rb