module Asrt::Fallible

Public Instance Methods

asrt(*args) { |rescue false) == true| ... } click to toggle source
# File lib/asrt.rb, line 6
def asrt(*args, &block)
  if block.nil?
    condition, message, garbage = args

    okay = (condition == true)
  else
    message, garbage = args
    file_line = block.source_location
    message = (file_line << message).join(':')

    okay = (yield rescue false) == true
  end

  raise ArgumentError, 'wrong number of arguments.' unless garbage.nil?

  raise AssertionError, message unless okay
end