Class: Circuitdata::ProductIdValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/circuitdata/product_id_validator.rb

Class Method Summary collapse

Class Method Details

.validate(data) ⇒ Object



3
4
5
6
7
8
# File 'lib/circuitdata/product_id_validator.rb', line 3

def self.validate(data)
  products = Product.from_data(data)
  products.flat_map do |product|
    validate_product(product)
  end
end

.validate_product(product) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/circuitdata/product_id_validator.rb', line 10

def self.validate_product(product)
  errors = []
  layer_ids = product.layers.map { |layer| layer.fetch(:uuid) }
  process_ids = product.processes.map { |process| process.fetch(:uuid) }
  ensure_unique(layer_ids, errors, [*product.product_data_path, :layers])
  ensure_unique(process_ids, errors, [*product.product_data_path, :processes])
  check_references(layer_ids, errors, product)
  errors
end