Module: Cocina::Models::Validatable

Extended by:
ActiveSupport::Concern
Included in:
AdminPolicy, AdminPolicyWithMetadata, Collection, CollectionWithMetadata, DRO, DROWithMetadata, Description, RequestAdminPolicy, RequestCollection, RequestDRO, RequestDescription
Defined in:
lib/cocina/models/validatable.rb

Overview

Validate upon construction

Instance Method Summary collapse

Instance Method Details

#new(*args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cocina/models/validatable.rb', line 32

def new(*args)
  validate = args.first.delete(:validate) if args.present?

  Thread.current[:cocina_construction_depth] = Thread.current[:cocina_construction_depth].to_i + 1
  begin
    new_model = super
  ensure
    Thread.current[:cocina_construction_depth] -= 1
  end

  Validators::Validator.validate(new_model.class, new_model) if validate || validate.nil?
  new_model
end