Class: SeeingIsBelieving::Binary::PrintResultsNextToLines

Inherits:
Object
  • Object
show all
Includes:
HasException
Defined in:
lib/seeing_is_believing/binary/print_results_next_to_lines.rb

Constant Summary collapse

STDOUT_PREFIX =
'# >>'
STDERR_PREFIX =
'# !>'
EXCEPTION_PREFIX =
'# ~>'
RESULT_PREFIX =
'# =>'

Instance Attribute Summary

Attributes included from HasException

#exception

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(body, file_result, options = {}) ⇒ PrintResultsNextToLines

Returns a new instance of PrintResultsNextToLines.



33
34
35
36
37
# File 'lib/seeing_is_believing/binary/print_results_next_to_lines.rb', line 33

def initialize(body, file_result, options={})
  self.body        = body
  self.options     = options
  self.file_result = file_result
end

Class Method Details

.method_from_options(*args) ⇒ Object



22
23
24
# File 'lib/seeing_is_believing/binary/print_results_next_to_lines.rb', line 22

def self.method_from_options(*args)
  define_method(args.first) { options.fetch *args }
end

.remove_previous_output_from(string) ⇒ Object



15
16
17
18
19
# File 'lib/seeing_is_believing/binary/print_results_next_to_lines.rb', line 15

def self.remove_previous_output_from(string)
  string.gsub(/\s+(#{EXCEPTION_PREFIX}|#{RESULT_PREFIX}).*?$/, '')
        .gsub(/\n?(^#{STDOUT_PREFIX}[^\n]*\r?\n?)+/m,          '')
        .gsub(/\n?(^#{STDERR_PREFIX}[^\n]*\r?\n?)+/m,          '')
end

Instance Method Details

#callObject



43
44
45
46
47
48
49
50
51
# File 'lib/seeing_is_believing/binary/print_results_next_to_lines.rb', line 43

def call
  add_each_line_until_start_or_data_segment
  add_lines_with_results_until_end_or_data_segment
  add_lines_until_data_segment
  add_stdout
  add_stderr
  add_remaining_lines
  return new_body
end

#new_bodyObject



39
40
41
# File 'lib/seeing_is_believing/binary/print_results_next_to_lines.rb', line 39

def new_body
  @new_body ||= ''
end