Class: Lax::Hook

Inherits:
Proc
  • Object
show all
Defined in:
lib/lax/hook.rb

Constant Summary collapse

StartTime =
Hook.new { @start = Time.now }
StopTime =
Hook.new { @stop  = Time.now }
PassFail =
Hook.new {|tc| $stdout.write(tc[:pass] ? "\x1b[32m=\x1b[0m" : "\x1b[31m#\x1b[0m")}
Summary =
Hook.new do |cases|
  puts "\nFinished #{cases.size} tests" <<
    " in #{(@stop - @start).round 10} seconds" <<
    " with #{(cases.reject{|c|c[:pass]}).size} failures"
end
Failures =
Hook.new do |cases|
  cases.reject {|c|c[:pass]}.each do |f|
    puts "  #{Module===f[:obj] ? "#{f[:obj]}::" : "#{f[:obj].class}#"}#{f[:msg]}" <<
      "#{?(+[*f[:args]]*', '+?) if f[:args]} " << (f.has_key?(:value) ? "#=> #{f[:value]}" : "raised unhandled #{f[:xptn].class}")
  end
end

Instance Method Summary collapse

Instance Method Details

#+(cb) ⇒ Object



4
# File 'lib/lax/hook.rb', line 4

def +(cb);  Hook.new {|e| self[e]; cb[e]} end

#<<(cb) ⇒ Object



3
# File 'lib/lax/hook.rb', line 3

def <<(cb); Hook.new {|e| self[cb[e]]}    end