Class: AsciiDataTools::Controller::QDiffController

Inherits:
AbstractController show all
Includes:
ExternalPrograms, Filter, Filter::Diffing
Defined in:
lib/ascii-data-tools/controller.rb

Instance Method Summary collapse

Methods included from ExternalPrograms

#diff, #diff_command_for, #edit_differences, #modify_file_mtime_to, #sort

Methods inherited from AbstractController

#initialize, #type_determiner

Constructor Details

This class inherits a constructor from AsciiDataTools::Controller::AbstractController

Instance Method Details

#runObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/ascii-data-tools/controller.rb', line 93

def run
  editor = Editor.new(&@configuration.editor)

  normaliser1    = NormalisingFilter.new( @configuration.input_sources[0].filename, type_determiner)
  normaliser2    = NormalisingFilter.new( @configuration.input_sources[1].filename, type_determiner)
  sorter1        = SortingFilter.new
  sorter2        = SortingFilter.new
  diff_executer  = DiffExecutingFilter.new
  diff_parser    = DiffParsingFilter.new
  diff_formatter = DiffFormattingFilter.new(type_determiner)
  
  diff_formatter << (diff_parser << (diff_executer << [sorter1 << (normaliser1 << @configuration.input_sources[0]),
                                                       sorter2 << (normaliser2 << @configuration.input_sources[1])]))
  
  begin
    diff_formatter.write(editor[0], editor[1])
    editor.edit
  rescue StreamsEqualException => e
    @configuration.user_feedback_stream.puts "The files are identical."
  end        
end