Class: ExecutionDecider
- Inherits:
-
Object
- Object
- ExecutionDecider
- Includes:
- EnumHelper
- Defined in:
- lib/execution_decider.rb
Instance Method Summary collapse
- #decide(file_enum, result_block_regex_method, code_content = nil) ⇒ Object
-
#initialize(current_block_run, current_block_rerun, current_block_lang, current_block_explain = false, current_block_flamegraph = false, current_block_result = true) ⇒ ExecutionDecider
constructor
A new instance of ExecutionDecider.
Constructor Details
#initialize(current_block_run, current_block_rerun, current_block_lang, current_block_explain = false, current_block_flamegraph = false, current_block_result = true) ⇒ ExecutionDecider
Returns a new instance of ExecutionDecider.
6 7 8 9 10 11 12 13 |
# File 'lib/execution_decider.rb', line 6 def initialize(current_block_run, current_block_rerun, current_block_lang, current_block_explain = false, current_block_flamegraph = false, current_block_result = true) @current_block_run = current_block_run @current_block_rerun = current_block_rerun @current_block_lang = current_block_lang @current_block_explain = current_block_explain @current_block_flamegraph = current_block_flamegraph @current_block_result = current_block_result end |
Instance Method Details
#decide(file_enum, result_block_regex_method, code_content = nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/execution_decider.rb', line 15 def decide(file_enum, result_block_regex_method, code_content = nil) return skip_execution_run_false if run_disabled? # For ruby blocks, check if code content contains xmpfilter results (# >>) if is_ruby_block? && code_content && has_xmpfilter_results?(code_content) return handle_inline_ruby_results end expected_header_regex = result_block_regex_method.call(@current_block_lang) peek1 = peek_next_line(file_enum) if line_matches_pattern?(peek1, expected_header_regex) handle_immediate_result_block(file_enum) elsif is_blank_line?(peek1) handle_blank_line_scenario(file_enum, expected_header_regex) elsif (@current_block_explain || @current_block_flamegraph) && is_dalibo_link?(peek1) handle_immediate_dalibo_link(file_enum) elsif @current_block_flamegraph && is_flamegraph_link?(peek1) handle_immediate_flamegraph_link(file_enum) else execute_without_existing_result end end |