Sha256: 0a83aea1ec37f207fbb6452b62946f77d648ef71720c6d5c60e4dd31dfb3a659
Contents?: true
Size: 1.68 KB
Versions: 5
Compression:
Stored size: 1.68 KB
Contents
# Author:: Nicolas Despres <nicolas.despres@gmail.com>. # Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved. # License:: LGPL # $Id: Master.rb 567 2005-04-13 08:00:06Z polrop $ module TTK module Testers class Master < Tester include Concrete def initialize(service, name, sub_testers) super(service, name) @sub_testers = sub_testers end def select_tester(&block) query_node = super(&block) self.sub_testers.each do |uri, sub_tester| sub_query_node = sub_tester.select_tester(&block) unless sub_query_node.nil? if query_node.nil? query_node = QueryNode.new(@service.uri, @config[:tester_name], @config[:tester_type]) end query_node << sub_query_node end end query_node end def query_tester(query_node) super sub_testers = self.sub_testers query_node.each do |sub_query_node| sub_tester = sub_testers[sub_query_node.uri] sub_tester.query_tester(sub_query_node) if sub_tester end nil end def dynamic_select(&block) #FIXME: manage concurrency scores = self.sub_testers.map do |uri, sub_tester| sub_tester.dynamic_select(&block) end best = scores.max wrap(best.tester) best end def sub_testers @sub_testers.synchronize { @sub_testers.dup } end protected def wrap(obj) DRb::DRbObject.new(obj) end end # class Master end # module Testers end # module TTK
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
ttk-0.1.576 | lib/ttk/testers/Master.rb |
ttk-0.1.580 | lib/ttk/testers/Master.rb |
ttk-0.2.0 | lib/ttk/testers/Master.rb |
ttk-0.1.579 | lib/ttk/testers/Master.rb |
ttk-0.2.1 | lib/ttk/testers/Master.rb |