Sha256: f6dde2910f242ab353a98a6c79c6d5af9cfee715077f9d824b27224c4b6e8dba

Contents?: true

Size: 743 Bytes

Versions: 2

Compression:

Stored size: 743 Bytes

Contents

module Similatron
  class DiffComparisonEngine < ComparisonEngine

    def can_handle_mime?(mime_type)
      mime_type !~ /charset=binary/
    end

    private

    def command(expected, actual, _diff_path)
      "#{executable_path} #{expected} #{actual}"
    end

    def default_executable_path
      "diff"
    end

    def diff_extension
      "diff"
    end

    def diff(diff_path, exec_result)
      if exec_result.status != 0
        File.write(diff_path, exec_result.out)
        diff_path
      else # rubocop:disable Style/EmptyElse
        nil
      end
    end

    def score(exec_result)
      return 0 if exec_result.status.zero?

      lines = exec_result.out.split("\n")
      lines.grep(/^>|</).size / 2.0
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
similatron-0.1.1 lib/similatron/diff_comparison_engine.rb
similatron-0.1.0 lib/similatron/diff_comparison_engine.rb