class ActiveSupport::JSON::Encoding::Encoder

def check_for_circular_references(value)

def check_for_circular_references(value)
  unless @seen.add?(value.__id__)
    raise CircularReferenceError, 'object references itself'
  end
  yield
ensure
  @seen.delete(value.__id__)
end