Class: Mongo::ServerSelector::Nearest
- Inherits:
-
Object
- Object
- Mongo::ServerSelector::Nearest
- Includes:
- Selectable
- Defined in:
- lib/mongo/server_selector/nearest.rb
Overview
Encapsulates specifications for selecting near servers given a list
of candidates.
Constant Summary collapse
- SERVER_FORMATTED_NAME =
Name of the this read preference in the server’s format.
'nearest'.freeze
Instance Attribute Summary
Attributes included from Selectable
#max_staleness, #options, #tag_sets
Instance Method Summary collapse
-
#name ⇒ Symbol
Get the name of the server mode type.
-
#slave_ok? ⇒ true
Whether the slaveOk bit should be set on wire protocol messages.
-
#tags_allowed? ⇒ true
Whether tag sets are allowed to be defined for this server preference.
-
#to_mongos ⇒ Hash
(also: #to_doc)
Convert this server preference definition into a format appropriate for a mongos server.
Methods included from Selectable
#==, #candidates, #initialize, #inspect, #local_threshold, #select_server, #server_selection_timeout
Instance Method Details
#name ⇒ Symbol
Get the name of the server mode type.
38 39 40 |
# File 'lib/mongo/server_selector/nearest.rb', line 38 def name :nearest end |
#slave_ok? ⇒ true
Whether the slaveOk bit should be set on wire protocol messages.
I.e. whether the operation can be performed on a secondary server.
48 49 50 |
# File 'lib/mongo/server_selector/nearest.rb', line 48 def slave_ok? true end |
#tags_allowed? ⇒ true
Whether tag sets are allowed to be defined for this server preference.
57 58 59 |
# File 'lib/mongo/server_selector/nearest.rb', line 57 def true end |
#to_mongos ⇒ Hash Also known as: to_doc
Convert this server preference definition into a format appropriate
for a mongos server.
72 73 74 75 76 77 |
# File 'lib/mongo/server_selector/nearest.rb', line 72 def to_mongos @doc ||= (preference = { :mode => SERVER_FORMATTED_NAME } preference.merge!({ :tags => tag_sets }) unless tag_sets.empty? preference.merge!({ maxStalenessSeconds: max_staleness }) if max_staleness preference) end |