Class: Sxn::Rules::RulesEngine::ExecutionResult
- Inherits:
-
Object
- Object
- Sxn::Rules::RulesEngine::ExecutionResult
- Defined in:
- lib/sxn/rules/rules_engine.rb
Overview
Execution result for rule application
Instance Attribute Summary collapse
-
#applied_rules ⇒ Object
readonly
Returns the value of attribute applied_rules.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#failed_rules ⇒ Object
readonly
Returns the value of attribute failed_rules.
-
#total_duration ⇒ Object
readonly
Returns the value of attribute total_duration.
Instance Method Summary collapse
- #add_applied_rule(rule) ⇒ Object
- #add_engine_error(error) ⇒ Object
- #add_failed_rule(rule, error) ⇒ Object
- #add_skipped_rule(rule, reason) ⇒ Object
- #finish! ⇒ Object
-
#initialize ⇒ ExecutionResult
constructor
A new instance of ExecutionResult.
- #skipped_rules ⇒ Object
- #start! ⇒ Object
- #success? ⇒ Boolean
- #to_h ⇒ Object
- #total_rules ⇒ Object
Constructor Details
#initialize ⇒ ExecutionResult
Returns a new instance of ExecutionResult.
41 42 43 44 45 46 47 48 49 |
# File 'lib/sxn/rules/rules_engine.rb', line 41 def initialize @applied_rules = [] @failed_rules = [] @skipped_rules = [] @total_duration = 0 @errors = [] @start_time = nil @end_time = nil end |
Instance Attribute Details
#applied_rules ⇒ Object (readonly)
Returns the value of attribute applied_rules.
35 36 37 |
# File 'lib/sxn/rules/rules_engine.rb', line 35 def applied_rules @applied_rules end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
35 36 37 |
# File 'lib/sxn/rules/rules_engine.rb', line 35 def errors @errors end |
#failed_rules ⇒ Object (readonly)
Returns the value of attribute failed_rules.
35 36 37 |
# File 'lib/sxn/rules/rules_engine.rb', line 35 def failed_rules @failed_rules end |
#total_duration ⇒ Object (readonly)
Returns the value of attribute total_duration.
35 36 37 |
# File 'lib/sxn/rules/rules_engine.rb', line 35 def total_duration @total_duration end |
Instance Method Details
#add_applied_rule(rule) ⇒ Object
60 61 62 |
# File 'lib/sxn/rules/rules_engine.rb', line 60 def add_applied_rule(rule) @applied_rules << rule end |
#add_engine_error(error) ⇒ Object
73 74 75 |
# File 'lib/sxn/rules/rules_engine.rb', line 73 def add_engine_error(error) @errors << { rule: "engine", error: error } end |
#add_failed_rule(rule, error) ⇒ Object
64 65 66 67 |
# File 'lib/sxn/rules/rules_engine.rb', line 64 def add_failed_rule(rule, error) @failed_rules << rule @errors << { rule: rule.name, error: error } end |
#add_skipped_rule(rule, reason) ⇒ Object
69 70 71 |
# File 'lib/sxn/rules/rules_engine.rb', line 69 def add_skipped_rule(rule, reason) @skipped_rules << { rule: rule, reason: reason } end |
#finish! ⇒ Object
55 56 57 58 |
# File 'lib/sxn/rules/rules_engine.rb', line 55 def finish! @end_time = Time.now @total_duration = @end_time - @start_time if @start_time end |
#skipped_rules ⇒ Object
37 38 39 |
# File 'lib/sxn/rules/rules_engine.rb', line 37 def skipped_rules @skipped_rules.map { |s| s[:rule] } end |
#start! ⇒ Object
51 52 53 |
# File 'lib/sxn/rules/rules_engine.rb', line 51 def start! @start_time = Time.now end |
#success? ⇒ Boolean
77 78 79 |
# File 'lib/sxn/rules/rules_engine.rb', line 77 def success? @failed_rules.empty? && @errors.empty? end |
#to_h ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/sxn/rules/rules_engine.rb', line 85 def to_h { success: success?, total_rules: total_rules, applied_rules: @applied_rules.map(&:name), failed_rules: @failed_rules.map(&:name), skipped_rules: @skipped_rules.map { |sr| sr[:rule].name }, total_duration: @total_duration, errors: @errors.map { |e| { rule: e[:rule], message: e[:error]. } } } end |
#total_rules ⇒ Object
81 82 83 |
# File 'lib/sxn/rules/rules_engine.rb', line 81 def total_rules @applied_rules.size + @failed_rules.size + @skipped_rules.size end |