Sha256: 8d92194e0ccbf61e59e2b72ebbe1361666385e87501e1df20575bddf248d76d2

Contents?: true

Size: 760 Bytes

Versions: 2

Compression:

Stored size: 760 Bytes

Contents

require_relative 'assertion'

# Compare assertion serves primarily as a base class
# for other more specific comparison assertions.
#
# In itself it can be used to test a comparision
# made by #<=>.
#
class CompareAssay < Assertion

  # TODO: What about #cmp alias?

  register :<=>, :compare

  #
  # Check assertion using `<=>`.
  #
  def self.pass?(subject, criterion, result=0)
    (subject <=> criterion) == result
  end

  #
  # Error message for campare assertion.
  #
  def self.assert_message(subject, criterion, result=0)
    a  = subject.inspect
    b  = criterion.inspect
    r  = result.inspect

    if a.size > SIZE_LIMIT or b.size > SIZE_LIMIT
      "a <=> b == #{r}\na) #{a}\nb) #{b}"
    else
      "#{a} <=> #{b} == #{r}"
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
assay-0.4.1 lib/assay/compare_assay.rb
assay-0.4.0 lib/assay/compare_assay.rb