Ответ 1
Для простых утверждений вам, вероятно, лучше всего откатить свой собственный метод assert, взяв блок:
ruby-1.9.1-p378 > class AssertionError < RuntimeError
ruby-1.9.1-p378 ?> end
=> nil
ruby-1.9.1-p378 > def assert &block
ruby-1.9.1-p378 ?> raise AssertionError unless yield
ruby-1.9.1-p378 ?> end
=> nil
ruby-1.9.1-p378 > assert { 1 > 0 }
=> nil
ruby-1.9.1-p378 > assert { 5 == 12 }
AssertionError: AssertionError
from (irb):8:in `assert'
from (irb):11
from /Users/mr/.rvm/rubies/ruby-1.9.1-p378/bin/irb:17:in `<main>'
В copypastastable форме:
class AssertionError < RuntimeError
end
def assert &block
raise AssertionError unless yield
end
i = 1
assert {i >= 0}
assert { 5 == 12 }