class Mongo::Server::Description::Features
Defines behaviour around what features a specific server supports.
@since 2.0.0
Constants
- DRIVER_TOO_OLD
Error message if the driver is too old for the version of the server.
@since 2.5.0
- DRIVER_WIRE_VERSIONS
The wire protocol versions that this version of the driver supports.
@since 2.0.0
- MAPPINGS
List of features and the wire protocol version they appear in.
@since 2.0.0
- SERVER_TOO_OLD
Error message if the server is too old for this version of the driver.
@since 2.5.0
- ZERO_RANGE
Attributes
server_wire_versions[R]
@return [ Range ] #server_wire_versions The server's supported wire
versions.
Public Class Methods
new(server_wire_versions, address = nil)
click to toggle source
Initialize the features.
@example Initialize the features.
Features.new(0..3)
@param [ Range ] #server_wire_versions The server supported wire
versions.
@since 2.0.0
# File lib/mongo/server/description/features.rb, line 89 def initialize(server_wire_versions, address = nil) @server_wire_versions = server_wire_versions check_driver_support!(address) unless server_wire_versions == ZERO_RANGE end
Private Instance Methods
check_driver_support!(address)
click to toggle source
# File lib/mongo/server/description/features.rb, line 98 def check_driver_support!(address) 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