Class: Mongo::Server::Description::Features
- Inherits:
-
Object
- Object
- Mongo::Server::Description::Features
- Defined in:
- lib/mongo/server/description/features.rb
Overview
Defines behaviour around what features a specific server supports.
Constant Summary collapse
- MAPPINGS =
List of features and the wire protocol version they appear in.
{ :transactions => 7, :scram_sha_256 => 7, :array_filters => 6, :op_msg => 6, :sessions => 6, :collation => 5, :max_staleness => 5, :find_command => 4, :list_collections => 3, :list_indexes => 3, :scram_sha_1 => 3, :write_command => 2, :users_info => 2 }.freeze
- SERVER_TOO_OLD =
Error message if the server is too old for this version of the driver.
"Server at (%s) reports wire version (%s), but this version of the Ruby driver " + "requires at least (%s)."
- DRIVER_TOO_OLD =
Error message if the driver is too old for the version of the server.
"Server at (%s) requires wire version (%s), but this version of the Ruby driver " + "only supports up to (%s)."
- DRIVER_WIRE_VERSIONS =
The wire protocol versions that this version of the driver supports.
(2..7).freeze
Instance Attribute Summary collapse
-
#server_wire_versions ⇒ Range
readonly
Server_wire_versions The server’s supported wire versions.
Instance Method Summary collapse
-
#check_driver_support! ⇒ Object
Check that there is an overlap between the driver supported wire version range and the server wire version range.
-
#initialize(server_wire_versions, address = nil) ⇒ Features
constructor
Initialize the features.
Constructor Details
#initialize(server_wire_versions, address = nil) ⇒ Features
Initialize the features.
90 91 92 93 |
# File 'lib/mongo/server/description/features.rb', line 90 def initialize(server_wire_versions, address = nil) @server_wire_versions = server_wire_versions @address = address end |
Instance Attribute Details
#server_wire_versions ⇒ Range (readonly)
Returns server_wire_versions The server’s supported wire versions.
79 80 81 |
# File 'lib/mongo/server/description/features.rb', line 79 def server_wire_versions @server_wire_versions end |
Instance Method Details
#check_driver_support! ⇒ Object
Check that there is an overlap between the driver supported wire
version range and the server wire version range.
105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/mongo/server/description/features.rb', line 105 def check_driver_support! if DRIVER_WIRE_VERSIONS.min > @server_wire_versions.max raise Error::UnsupportedFeatures.new(SERVER_TOO_OLD % [@address, @server_wire_versions.max, DRIVER_WIRE_VERSIONS.min]) elsif DRIVER_WIRE_VERSIONS.max < @server_wire_versions.min raise Error::UnsupportedFeatures.new(DRIVER_TOO_OLD % [@address, @server_wire_versions.min, DRIVER_WIRE_VERSIONS.max]) end end |