Class: Validatable::UniquenessValidator
- Inherits:
-
ValidationBase
- Object
- ValidationBase
- Validatable::UniquenessValidator
- Defined in:
- lib/mongo/model/integration/validatable/uniqueness_validator.rb
Instance Attribute Summary collapse
-
#case_sensitive ⇒ Object
Returns the value of attribute case_sensitive.
-
#scope ⇒ Object
Returns the value of attribute scope.
Instance Method Summary collapse
-
#initialize(klass, attribute, options = {}) ⇒ UniquenessValidator
constructor
A new instance of UniquenessValidator.
- #message(instance) ⇒ Object
- #valid?(instance) ⇒ Boolean
Constructor Details
#initialize(klass, attribute, options = {}) ⇒ UniquenessValidator
Returns a new instance of UniquenessValidator.
4 5 6 7 |
# File 'lib/mongo/model/integration/validatable/uniqueness_validator.rb', line 4 def initialize(klass, attribute, ={}) super self.case_sensitive = false if case_sensitive == nil end |
Instance Attribute Details
#case_sensitive ⇒ Object
Returns the value of attribute case_sensitive.
2 3 4 |
# File 'lib/mongo/model/integration/validatable/uniqueness_validator.rb', line 2 def case_sensitive @case_sensitive end |
#scope ⇒ Object
Returns the value of attribute scope.
2 3 4 |
# File 'lib/mongo/model/integration/validatable/uniqueness_validator.rb', line 2 def scope @scope end |
Instance Method Details
#message(instance) ⇒ Object
27 28 29 |
# File 'lib/mongo/model/integration/validatable/uniqueness_validator.rb', line 27 def (instance) super || "#{attribute} must be unique!" end |
#valid?(instance) ⇒ Boolean
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/mongo/model/integration/validatable/uniqueness_validator.rb', line 9 def valid?(instance) conditions = {} conditions[scope] = instance.send scope if scope value = instance.send attribute if case_sensitive conditions[attribute] = value else conditions[attribute] = /^#{Regexp.escape(value.to_s)}$/i end # Make sure we're not including the current document in the query. conditions[:_id] = {_ne: instance._id} if instance._id !klass.exists?(conditions) end |