lib/rast/parameter_generator.rb in rast-0.19.1 vs lib/rast/parameter_generator.rb in rast-1.0.0

- old
+ new

@@ -1,13 +1,15 @@ # frozen_string_literal: true require 'yaml' -require 'rast/rast_spec' + require 'rast/rules/rule' require 'rast/rules/rule_evaluator' -require 'rast/rules/rule_validator' +require 'rast/rast_spec' +require 'rast/rule_validator' + # Generates the test parameters. class ParameterGenerator # Allow access so yaml-less can build the config via dsl. attr_accessor :specs_config @@ -34,10 +36,13 @@ spec = build_spec(spec_config) list = [] variables = spec.variables + # dict.first method returns the first key and value as an array, so invoking + # .first, then . last would return the + # first value. var_first = variables.first multipliers = [] (1...variables.size).each { |i| multipliers << variables.values[i].dup } scenarios = var_first.last.product(*multipliers) @@ -65,30 +70,29 @@ def valid_case?(scenario, spec) return true unless with_optional_clause?(spec) include_result = true unless spec.exclude_clause.nil? - include_result = qualify_secario?(spec, scenario, false) + include_result = qualify_scenario?(spec, scenario, false) end return include_result if no_include_or_dont_include?(spec, include_result) - qualify_secario?(spec, scenario, true) + qualify_scenario?(spec, scenario, true) end # blech! def no_include_or_dont_include?(spec, include_result) spec.include_clause.nil? || !include_result end - def qualify_secario?(spec, scenario, is_included) + def qualify_scenario?(spec, scenario, is_included) action = is_included ? 'include' : 'exclude' - rule_evaluator = RuleEvaluator.new(converters: spec.converters) + rule_evaluator = RuleEvaluator.new(token_converters: spec.token_converter) clause = Rule.sanitize(clause: spec.send("#{action}_clause")) rule_evaluator.parse(expression: clause) rule_evaluator.evaluate( - scenario: scenario, - rule_token_convert: spec.token_converter + scenario: scenario ) == is_included.to_s end # Has an exclude or include clause def with_optional_clause?(spec)