Class: LcpRuby::CustomFields::ContractValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/custom_fields/contract_validator.rb

Constant Summary collapse

REQUIRED_FIELDS =
{
  "field_name" => "string",
  "custom_type" => %w[string enum],
  "target_model" => "string",
  "label" => "string",
  "active" => "boolean"
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_def) ⇒ ContractValidator

Returns a new instance of ContractValidator.



16
17
18
19
20
# File 'lib/lcp_ruby/custom_fields/contract_validator.rb', line 16

def initialize(model_def)
  @model_def = model_def
  @errors = []
  @warnings = []
end

Class Method Details

.validate(model_def) ⇒ Object



12
13
14
# File 'lib/lcp_ruby/custom_fields/contract_validator.rb', line 12

def self.validate(model_def)
  new(model_def).validate
end

Instance Method Details

#validateObject



22
23
24
25
26
27
28
29
30
# File 'lib/lcp_ruby/custom_fields/contract_validator.rb', line 22

def validate
  REQUIRED_FIELDS.each do |field_name, expected_type|
    validate_required_field(field_name, expected_type)
  end

  validate_field_name_uniqueness

  Metadata::ContractResult.new(errors: @errors, warnings: @warnings)
end