Module: Mongo::Error::Notable Private

Included in:
Mongo::Error, AuthError
Defined in:
build/ruby-driver-v2.19/lib/mongo/error/notable.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

A module encapsulating functionality to manage data attached to exceptions in the driver, since the driver does not currently have a single exception hierarchy root.

Since:

  • 2.11.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#connection_global_idInteger | nil

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns global id of the connection on which the error occurred.

Returns:

  • (Integer | nil)

    Connection global id.

Since:

  • 2.11.0



85
86
87
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 85

def connection_global_id
  @connection_global_id
end

#generationInteger | nil

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns connection pool generation for the connection on which the error occurred.

Returns:

  • (Integer | nil)

    Connection pool generation.

Since:

  • 2.11.0



71
72
73
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 71

def generation
  @generation
end

#service_idObject | nil

Returns service id for the connection on which the error occurred.

Returns:

  • (Object | nil)

    Service id.

Since:

  • 2.11.0



78
79
80
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 78

def service_id
  @service_id
end

Instance Method Details

#add_note(note) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.11.0



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 45

def add_note(note)
  unless @notes
    @notes = []
  end
  if Lint.enabled?
    if @notes.include?(note)
      # The driver makes an effort to not add duplicated notes, by
      # keeping track of *when* a particular exception should have the
      # particular notes attached to it throughout the call stack.
      raise Error::LintError, "Adding a note which already exists in exception #{self}: #{note}"
    end
  end
  @notes << note
end

#add_notes(*notes) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Allows multiple notes to be added in a single call, for convenience.

Since:

  • 2.11.0



63
64
65
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 63

def add_notes(*notes)
  notes.each { |note| add_note(note) }
end

#notesArray<String>

Returns an array of strings with additional information about the exception.

Returns:

  • (Array<String>)

    Additional information strings.

Since:

  • 2.11.0



36
37
38
39
40
41
42
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 36

def notes
  if @notes
    @notes.dup
  else
    []
  end
end

#to_sObject

Since:

  • 2.11.0



88
89
90
# File 'build/ruby-driver-v2.19/lib/mongo/error/notable.rb', line 88

def to_s
  super + notes_tail
end