Module: Pangea::Resources::Validators::Common

Defined in:
lib/pangea/resources/validators/common.rb

Instance Method Summary collapse

Instance Method Details

#check_mutually_exclusive(attrs, *field_names) ⇒ Object



21
22
23
24
25
26
# File 'lib/pangea/resources/validators/common.rb', line 21

def check_mutually_exclusive(attrs, *field_names)
  present = field_names.select { |f| !attrs.public_send(f).nil? }
  if present.length > 1
    raise Dry::Struct::Error, "Cannot specify both '#{present.join("' and '")}'"
  end
end

#check_required_one_of(attrs, *field_names) ⇒ Object



28
29
30
31
32
33
# File 'lib/pangea/resources/validators/common.rb', line 28

def check_required_one_of(attrs, *field_names)
  present = field_names.select { |f| !attrs.public_send(f).nil? }
  if present.empty?
    raise Dry::Struct::Error, "Must specify one of: #{field_names.join(', ')}"
  end
end

#skip_validation_for_refs?(attrs, *field_names) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/pangea/resources/validators/common.rb', line 35

def skip_validation_for_refs?(attrs, *field_names)
  field_names.any? { |f| Pangea::Resources::BaseAttributes.terraform_reference?(attrs.public_send(f).to_s) }
end