e-travel/agnostic_backend

View on GitHub
lib/agnostic_backend/indexable/object_observer.rb

Summary

Maintainability
A
0 mins
Test Coverage
module AgnosticBackend
  module Indexable

    class CircularReferenceError < StandardError; end

    class ObjectObserver
      def initialize
        @objects = Set.new
      end

      def add(obj)
        raise CircularReferenceError.new(obj) if @objects.include? obj
        @objects << obj
      end
    end
  end
end