Sha256: 3d3ddb58735ac1b0dd63b8fd3acbe0d51037a5e27950f32cc4933688a043a00d

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

require 'assay/assertions/compare_failure'

module Assay

  class NilFailure < CompareFailure

    def self.assertion_name
      :nil
    end

    def self.assertion_operator
      :nil?
    end

    # Check assertion.
    def self.pass?(exp)
      exp.nil?
    end

    #
    def to_s
      return super unless @arguments.size == 1

      exp = @arguments[0].inspect

      if @_negated
        "Expected #{exp} to NOT be nil"
      else
        "Expected #{exp} to be nil"
      end
    end

  end


  module Assertives
    # Passed if object is +nil+.
    #
    def assert_nil(exp, opts={})
      opts[:backtrace] ||= caller
      NilFailure.assert(exp, opts)
    end

    # Passed if object is not +nil+.
    #
    #   assert_not_nil(true)
    #
    def assert_not_nil(exp, opts={})
      opts[:backtrace] ||= caller
      NilFailure.refute(exp, opts)
    end
  end


  module Matchers

    #
    #
    #   value.assert is_nil
    #
    def is_nil
      NilFailure.to_matcher
    end

    #
    #
    #   value.should be_nil
    #
    def be_nil
      NilFailure.to_matcher
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
assay-0.2.0 lib/assay/assertions/nil_failure.rb