Class: LcpRuby::SavedFilters::StaleFieldValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/saved_filters/stale_field_validator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(condition_tree, filter_metadata) ⇒ StaleFieldValidator

Returns a new instance of StaleFieldValidator.



14
15
16
17
18
# File 'lib/lcp_ruby/saved_filters/stale_field_validator.rb', line 14

def initialize(condition_tree, )
  @tree = condition_tree
  @valid_field_names = build_valid_field_set()
  @skipped = []
end

Class Method Details

.validate(condition_tree, filter_metadata) ⇒ Hash

Walks a condition tree and validates each leaf’s field against available filter fields. Removes invalid leaves and collects descriptions of skipped conditions.

Parameters:

  • condition_tree (Hash)

    the condition tree to validate

  • filter_metadata (Hash)

    output from FilterMetadataBuilder#build

Returns:

  • (Hash)

    { valid_tree: Hash, skipped_conditions: Array<String> }



10
11
12
# File 'lib/lcp_ruby/saved_filters/stale_field_validator.rb', line 10

def self.validate(condition_tree, )
  new(condition_tree, ).validate
end

Instance Method Details

#validateObject



20
21
22
23
24
25
# File 'lib/lcp_ruby/saved_filters/stale_field_validator.rb', line 20

def validate
  valid_tree = process_node(@tree)
  valid_tree ||= { "combinator" => "and", "children" => [] }

  { valid_tree: valid_tree, skipped_conditions: @skipped }
end