class TarkaMatchers::Formatters::Selected

Public Class Methods

selected(original, selected) click to toggle source
# File lib/tarka_matchers/formatters/selected.rb, line 6
def self.selected original, selected
        indexes, actual_boundaries = [], []
        selected.each_slice(2) do |si,ei| 
                indexes << (si..ei).to_a
                actual_boundaries  << [si,ei]
        end
        indexes.flatten!
        actual_boundaries.flatten!

        original_line = "#{GREEN_F}Original: #{BLACK_ON_GREEN}#{original}#{RESET}"
        selected_line = "\n#{RESET}#{RED_F}Selected: "
        selects = 0
        original.split('').each_with_index do |v,i|
                if indexes.include? i
                        selects += 1
                        selected_line << "#{BLACK_ON_GREEN}#{v}"
                else
                        selected_line << "#{RED_BLOCK}"
                end
        end

        matched = ((selects.to_f/original.length) * 100).round 3
        "\n\n#{original_line}#{selected_line}#{RESET}#{RED_F} - #{matched}% matched.\n#{RED_F}Bounds:   #{actual_boundaries}\n#{WHITE_F}Formatter: #{self.name}#{RESET}" 
end