class Differin::Engines::LCS

Attributes

engine_result[RW]

Getters/Setters

sequence1[RW]

Getters/Setters

sequence2[RW]

Getters/Setters

Private Instance Methods

convert_result() click to toggle source
# File lib/differin/engines/lcs.rb, line 27
def convert_result
  engine_result.map do |row|
    row = row.to_a

    {
      status: map_status(row[0]),
      lines: [row[1][0], row[2][0]],
      values: [row[1][1], row[2][1]]
    }
  end
end
load_sequences() click to toggle source
# File lib/differin/engines/lcs.rb, line 18
def load_sequences
  self.sequence1 = diff.file1.lines
  self.sequence2 = diff.file2.lines
end
map_status(status) click to toggle source

Map statuses from LCS to Differin

# File lib/differin/engines/lcs.rb, line 40
def map_status(status)
  {
    Differin::MODIFIED  => '!',
    Differin::EQUAL     => '=',
    Differin::ADDED     => '+',
    Differin::REMOVED   => '-'
  }.key(status)
end
run_diff_lcs() click to toggle source
# File lib/differin/engines/lcs.rb, line 23
def run_diff_lcs
  self.engine_result = ::Diff::LCS.sdiff(sequence1, sequence2)
end
run_engine() click to toggle source
# File lib/differin/engines/lcs.rb, line 12
def run_engine
  load_sequences
  run_diff_lcs
  convert_result
end