Classes and Modules
Public Class methods
run
(config, args)
Subtle::Sur::Test::run {{{
Run test for every file in args
@param [Array] config Config values @param [Array] args Args array
@example
Subtle::Sur::Test::Subtle.new.run(args) => nil
[show source]
# File data/sur/test.rb, line 410 def self.run(config, args) args.each do |arg| # Load sublet if File.exist?(arg) begin sublet = Subtle::Sur::Test::Sublet.new # Eval sublet in anonymous module sublet.instance_eval(File.read(arg)) rescue => err puts ">>> WARNING: Cannot load sublet: %s" % [ err.message ] unless error.is_a?(RuntimeError) puts error.backtrace end next end # Check if sublet exists unless sublet.nil? methods = [] dummy = Subtle::Sur::Test::Dummy.new # Apply config values sublet.config = parse_config(config) # Configure and run sublet sublet.__configure(sublet) sublet.__run(sublet) if sublet.respond_to?(:__run) # Sanitize if !sublet.instance_variable_defined?("@interval") or 0 >= sublet.interval sublet.interval = 60 end # Collect events Subtle::Sur::Test::Sublet::EVENTS.each do |k, v| name = ("__%s" % [ k ]).to_sym if sublet.respond_to?(name) methods.push({ :name => k, :arity => sublet.method(name).arity, :singleton => false }) end end # Collect hooks Subtle::Sur::Test::Sublet::HOOKS.each do |k| name = ("__%s" % [ k ]).to_sym if sublet.respond_to?(name) methods.push({ :name => k, :arity => sublet.method(name).arity, :singleton => false }) end end # Collect singleton methods sublet.singleton_methods.each do |k| methods.push({ :name => k, :arity => sublet.method(k).arity, :singleton => true }) end begin puts "------------------" puts " %s" % [ sublet.name ] puts "------------------" # Show instance variables sublet.instance_variables.each do |v| puts " %s = %s" % [ v, sublet.instance_variable_get(v) ] end puts "------------------" # Show method list i = 1 methods.each do |m| puts " (%d) %s %s" % [ i, m[:name], (m[:singleton] ? "(helper)" : "") ] i += 1 end puts " (0) Quit" puts "------------------" puts ">>> Select one method:\n" printf ">>> " num = STDIN.readline.to_i begin if 0 < num and methods.size >= num meth = methods[num - 1] name = meth[:singleton] ? meth[:name] : ("__%s" % [ meth[:name] ]).to_sym # Check proc arity case meth[:arity] when 2 then sublet.send(name, sublet, dummy) when 4 then sublet.send(name, sublet, 5, 5, 1) when 0 then sublet.send(name) else sublet.send(name, sublet) end end rescue => error puts ">>> ERROR: #{error}" unless error.is_a?(RuntimeError) puts error.backtrace end end end while(0 != num) end end end end