Module: Pangea::Resources::Validators::Common
- Defined in:
- lib/pangea/resources/validators/common.rb
Instance Method Summary collapse
- #check_mutually_exclusive(attrs, *field_names) ⇒ Object
- #check_required_one_of(attrs, *field_names) ⇒ Object
- #skip_validation_for_refs?(attrs, *field_names) ⇒ Boolean
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
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 |