Module: Mongo::Operation::Validatable Private
- Included in:
- Delete::OpMsg, Update::OpMsg, WriteCommand::OpMsg
- Defined in:
- lib/mongo/operation/shared/validatable.rb
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.
Instance Method Summary collapse
-
#validate_array_filters(connection, selector_or_item) ⇒ Object
private
selector_or_item here is either: - The selector as used in a findAndModify command, or - One of the array elements in the updates array in an update command.
-
#validate_collation(connection, selector_or_item) ⇒ Object
private
selector_or_item here is either: - The selector as used in a findAndModify command, or - One of the array elements in the updates array in an update command.
- #validate_find_options(connection, selector) ⇒ Object private
-
#validate_hint_on_update(connection, selector_or_item) ⇒ Object
private
selector_or_item here is either: - The selector as used in a findAndModify command, or - One of the array elements in the updates array in an update command.
- #validate_updates(connection, updates) ⇒ Object private
Instance Method Details
#validate_array_filters(connection, selector_or_item) ⇒ 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.
selector_or_item here is either:
-
The selector as used in a findAndModify command, or
-
One of the array elements in the updates array in an update command.
58 59 60 61 62 63 64 |
# File 'lib/mongo/operation/shared/validatable.rb', line 58 def validate_array_filters(connection, selector_or_item) if selector_or_item.key?(:arrayFilters) && !connection.features.array_filters_enabled? then raise Error::UnsupportedArrayFilters end end |
#validate_collation(connection, selector_or_item) ⇒ 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.
selector_or_item here is either:
-
The selector as used in a findAndModify command, or
-
One of the array elements in the updates array in an update command.
69 70 71 72 73 74 75 |
# File 'lib/mongo/operation/shared/validatable.rb', line 69 def validate_collation(connection, selector_or_item) if selector_or_item.key?(:collation) && !connection.features.collation_enabled? then raise Error::UnsupportedCollation end end |
#validate_find_options(connection, selector) ⇒ 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.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mongo/operation/shared/validatable.rb', line 24 def (connection, selector) if selector.key?(:hint) && !connection.features.find_and_modify_option_validation_enabled? then raise Error::UnsupportedOption.hint_error end if selector.key?(:arrayFilters) && !connection.features.array_filters_enabled? then raise Error::UnsupportedArrayFilters end if selector.key?(:collation) && !connection.features.collation_enabled? then raise Error::UnsupportedCollation end end |
#validate_hint_on_update(connection, selector_or_item) ⇒ 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.
selector_or_item here is either:
-
The selector as used in a findAndModify command, or
-
One of the array elements in the updates array in an update command.
47 48 49 50 51 52 53 |
# File 'lib/mongo/operation/shared/validatable.rb', line 47 def validate_hint_on_update(connection, selector_or_item) if selector_or_item.key?(:hint) && !connection.features.update_delete_option_validation_enabled? then raise Error::UnsupportedOption.hint_error end end |
#validate_updates(connection, updates) ⇒ 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.
77 78 79 80 81 82 83 84 |
# File 'lib/mongo/operation/shared/validatable.rb', line 77 def validate_updates(connection, updates) updates.each do |update| validate_array_filters(connection, update) validate_collation(connection, update) validate_hint_on_update(connection, update) end updates end |