require "objectteam"
require "../../simple/counter"
#create 3 instances of Simple.
e = Simple.new("earth")
m = Simple.new("mars")
v = Simple.new("venus")
#create connector with applied block.
#this block is called, whenever a role object must be instantiated.
#the baseobject plus the roleclass, defined by the connector is given.
countteam = CountHello.new() { |base, roleclass|
#we will count only those hellos, from planets where name includes an "e"
result = nil
if (base.name.include?("e"))
puts "\n----->create role for #{base.to_s}\n"
result = roleclass.new
else
puts "\n----->no counting role for #{base.to_s}\n"
end
result
}
#activate connector
countteam.while_active {
e.hello
m.hello
v.hello
}
syntax highlighted by Code2HTML, v. 0.9.1