Module: Legion::Extensions::MindGrowth::Runners::Validator
- Extended by:
- Validator
- Included in:
- Validator
- Defined in:
- lib/legion/extensions/mind_growth/runners/validator.rb
Instance Method Summary collapse
- #validate_fitness(extensions:) ⇒ Object
- #validate_proposal(proposal_id:) ⇒ Object
- #validate_scores(scores:) ⇒ Object
Instance Method Details
#validate_fitness(extensions:) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/legion/extensions/mind_growth/runners/validator.rb', line 37 def validate_fitness(extensions:, **) ranked = Helpers::FitnessEvaluator.rank(extensions) prune = Helpers::FitnessEvaluator.prune_candidates(extensions) improve = Helpers::FitnessEvaluator.improvement_candidates(extensions) { success: true, ranked: ranked, prune_candidates: prune.size, improvement_candidates: improve.size } rescue ArgumentError => e { success: false, error: e. } end |
#validate_proposal(proposal_id:) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/legion/extensions/mind_growth/runners/validator.rb', line 10 def validate_proposal(proposal_id:, **) proposal = find_proposal(proposal_id) return { success: false, error: :not_found } unless proposal issues = [] issues << 'missing name' if proposal.name.nil? || proposal.name.empty? issues << 'missing module_name' if proposal.module_name.nil? || proposal.module_name.empty? issues << 'missing category' unless Helpers::Constants::CATEGORIES.include?(proposal.category&.to_sym) issues << 'missing description' if proposal.description.nil? || proposal.description.empty? { success: issues.empty?, valid: issues.empty?, issues: issues, proposal_id: proposal_id } rescue ArgumentError => e { success: false, error: e. } end |
#validate_scores(scores:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/legion/extensions/mind_growth/runners/validator.rb', line 25 def validate_scores(scores:, **) issues = [] Helpers::Constants::EVALUATION_DIMENSIONS.each do |dim| value = scores[dim] issues << "missing #{dim}" if value.nil? issues << "#{dim} out of range (#{value})" if value && (value < 0.0 || value > 1.0) end { success: issues.empty?, valid: issues.empty?, issues: issues } rescue ArgumentError => e { success: false, error: e. } end |