Module: Dynamoid::Validations

Extended by:
ActiveSupport::Concern
Includes:
ActiveModel::Validations, ActiveModel::Validations::Callbacks
Included in:
Components
Defined in:
lib/dynamoid/validations.rb

Overview

Provide ActiveModel validations to Dynamoid documents.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#save(options = {}) ⇒ Object

Override save to provide validation support.

Since:

  • 0.2.0



15
16
17
18
19
20
# File 'lib/dynamoid/validations.rb', line 15

def save(options = {})
  options.reverse_merge!(validate: true)
  return false if options[:validate] && !valid?

  super
end

#save!(options = {}) ⇒ Object

Raise an error unless this object is valid.

Since:

  • 0.2.0



34
35
36
37
38
39
40
# File 'lib/dynamoid/validations.rb', line 34

def save!(options = {})
  unless valid?
    raise Dynamoid::Errors::DocumentNotValid, self
  end

  super
end

#update_attribute(attribute, value) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/dynamoid/validations.rb', line 42

def update_attribute(attribute, value)
  write_attribute(attribute, value)
  save(validate: false)
  self
rescue Dynamoid::Errors::StaleObjectError
  self
end

#valid?(context = nil) ⇒ Boolean

Is this object valid?

Since:

  • 0.2.0



25
26
27
28
# File 'lib/dynamoid/validations.rb', line 25

def valid?(context = nil)
  context ||= (new_record? ? :create : :update)
  super
end