Sha256: fa5b331601269c79aef410741f9d547b1c337380352ed63c34de320dc4a65ca0

Contents?: true

Size: 1.33 KB

Versions: 1

Compression:

Stored size: 1.33 KB

Contents

# Copyright (c) 2008,2010 Thomas Sawyer

require 'ae/core_ext'

module AE

  # The Assertion class is simply a subclass of Exception that is used
  # by AE as the default error raised when an assertion fails.
  #
  #   "The reserve of modern assertions is sometimes pushed to extremes,
  #    in which the fear of being contradicted leads the writer to strip
  #    himself of almost all sense and meaning."
  #                              -- Sir Winston Churchill (1874 - 1965)
  #
  #
  class Assertion < Exception

    # DEPRECATE: This will be removed in favor of Assertor#counts.
    def self.counts
      AE::Assertor.counts
    end

    # New assertion (failure).
    #
    # message - the failure message
    # options - such as :backtrace
    #
    def initialize(message=nil, options={})
      super(message)
      backtrace = options[:backtrace]
      set_backtrace(backtrace) if backtrace
      set_assertion(true)
    end

    # Technically any object that affirmatively responds to #assertion?
    # can be taken to be an Assertion. This makes it easier for various 
    # libraries to work together without having to depend upon a common
    # Assertion base class.
    def assertion?
      true
    end

    #
    def to_s
      '(assertion) ' + super
    end

  end

end

# Set top-level Assertion to AE::Assertion
Assertion = AE::Assertion

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ae-1.7.0 lib/ae/assertion.rb