lib/futest.rb in futest-0.0.2 vs lib/futest.rb in futest-0.0.3

- old
+ new

@@ -1,77 +1,11 @@ module Futest - module Helpers - ############## - # TEST METHODS - ############## - - # Prints error message and stops execution - def halt(str, obj = nil, n = x(caller)) - m = "#{n}: #{str}" - # Support for errors when using Object DB ORM - if obj and obj.errors and obj.errors.any? and obj.errors.messages - q = obj.errors.messages - m += ":\n=> " + q.each{|k, v| q[k] = v.join(', ')}.to_json[1..-2].gsub('","', '", "') - end - puts red(%{#{m}}) - puts - exit(0) - end - - # Prints the test and runs setup methods - def test(*args) - n = args[-1].is_a?(Integer) ? args[-1] : x(caller) - args.select{|r| r.is_a?(Symbol)}.each{|k| send(k)} - puts green("#{n}: #{args[0]}") - end - - # Equality tester - def is(v1, v2, n = x(caller)) - v2 = {:eq => v2} unless v2.is_a?(Hash) - # Extract options here with delete. - # No options available at the moment. - - # For key output - def fs(y);{:eq => '==', :gt => '>', :lt => '<', :a? => 'is a'}[y] rescue y;end - - # Symbolize keys and extract values - k, v = v2.inject({}){|q,(k,v)|q[k.to_sym] = v; q}.to_a.flatten - s = ["#{v1.class} #{v1} #{fs(k)} #{v}", nil, n] - case k - when :eq - halt(*s) unless v1 == v - when :gt - halt(*s) unless v1 > v - when :lt - halt(*s) unless v1 < v - when :a? - halt(*s) unless v1.is_a?(v) - else - puts "#{k}: Command not supported." - end - end - - ############## - # HELPER METHODS - ############## - - # Colorize input red - def red(text);"\e[31m#{text}\e[0m";end - - # Colorize input green - def green(text);"\e[33m#{text}\e[0m";end - - # Print error message - def e(y) - y.backtrace.first.match(/(\/.+\/.*.rb):(\d{1,9}):/) - halt(%{#{y.message}\n=> ~/#{$1.split('/')[3..-1].join('/')}}, nil, $2) if $1 and $2 - halt(%{#{y.message}\n=> #{y.backtrace.join("\n")}}) - end - - # Get the line number - def x(q) - q.first.split(':')[1] - end - - end + # # # # # # + # Futest flexible testing helpers for Ruby + # @homepage: https://github.com/fugroup/futest + # @author: Vidar <vidar@fugroup.net>, Fugroup Ltd. + # @license: MIT, contributions are welcome. + # # # # # # end + +require_relative 'futest/helpers'