Sha256: 287a5cd320bf5c8cee738c040e5aa8c21520c42595015552c926c06dffb0ba9f

Contents?: true

Size: 1.19 KB

Versions: 40

Compression:

Stored size: 1.19 KB

Contents

#
# Comparison module taken from:
# http://gist.github.com/raw/474363/c5382272965f4653b7f9b9f9a8ec8968818aa141/comparison.rb
#
class Comparison
  @@window = 64
  @@prelude = 12

  def self.window
    @@window
  end

  def self.window=(val)
    @@window = val
  end

  def self.prelude
    @@prelude
  end

  def self.prelude=(val)
    @@prelude = val
  end

  def initialize(expected, actual)
    @expected = expected
    @actual = actual
  end

  def same?
    @expected == @actual
  end

  def different_at
    if (@expected.nil? || @actual.nil?)
      0
    else
      i = 0
      while (i < @expected.size && i < @actual.size)
        if @expected[i] != @actual[i]
          break
        end
        i += 1
      end
      return i
    end
  end

  def message
    "Strings differ at position #{different_at}:\n" +
      "expected: #{chunk(@expected)}\n" +
      "  actual: #{chunk(@actual)}\n"
  end

  def chunk(s)
    prefix, middle, suffix = "...", "", "..."

    start = different_at - @@prelude
    if start < 0
      prefix = ""
      start = 0
    end

    stop = start + @@window
    if stop > s.size
      suffix = ""
      stop = s.size
    end

    [prefix, s[start...stop].inspect, suffix].join
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
radiant-shop-extension-0.94.8 spec/matchers/comparison.rb
radiant-shop-extension-0.94.7 spec/matchers/comparison.rb
radiant-shop-extension-0.94.6 spec/matchers/comparison.rb
radiant-shop-extension-0.94.5 spec/matchers/comparison.rb
radiant-shop-extension-0.94.4 spec/matchers/comparison.rb
radiant-shop-extension-0.94.3 spec/matchers/comparison.rb
radiant-shop-extension-0.94.2 spec/matchers/comparison.rb
radiant-shop-extension-0.94.1 spec/matchers/comparison.rb
radiant-shop-extension-0.94.0 spec/matchers/comparison.rb
radiant-shop-extension-0.93.3 spec/matchers/comparison.rb
radiant-shop-extension-0.93.2 spec/matchers/comparison.rb
radiant-shop-extension-0.93.1 spec/matchers/comparison.rb
radiant-shop-extension-0.93.0 spec/matchers/comparison.rb
radiant-shop-extension-0.92.11 spec/matchers/comparison.rb
radiant-shop-extension-0.92.10 spec/matchers/comparison.rb
radiant-shop-extension-0.92.9 spec/matchers/comparison.rb
radiant-shop-extension-0.92.8 spec/matchers/comparison.rb
radiant-shop-extension-0.92.7 spec/matchers/comparison.rb
radiant-shop-extension-0.92.6 spec/matchers/comparison.rb
radiant-shop-extension-0.92.3 spec/matchers/comparison.rb