mouse_client.rb:
require 'rubygems'
require 'wx'
require 'rinda/rinda'
MY_URI = "druby://127.0.0.1:9999"
TIME_TO_LIVE = 10
class MouseClient [800, 600],
:title => "Click and Drag"
)
frame.evt_close {exit}
frame.evt_motion {|event| on_mouse_motion(event)}
frame.evt_left_down {|event| on_mouse_press(event)}
frame.evt_left_up {|event| on_mouse_release(event)}
frame.show
end
def on_mouse_motion(event)
return unless event.dragging
space.write ["Integer:x", event.x], TIME_TO_LIVE
space.write ["Integer:y", event.y], TIME_TO_LIVE
end
def on_mouse_press(event); end
def on_mouse_release(event); end
end
client = MouseClient.new
DRb.start_service
client.space = Rinda::TupleSpaceProxy.new(DRbObject.new(nil, MY_URI))
client.main_loopstring_length_agent.rb:
require 'rinda/rinda'
MY_URI = ARGV[0] || "druby://127.0.0.1:9999"
DRb.start_service
space = Rinda::TupleSpaceProxy.new(DRbObject.new(nil, MY_URI))
def scale(value)
@largest_seen = value if @largest_seen == nil or value > @largest_seen
value.to_f / @largest_seen
end
loop do
key, value = space.take([/Integer/, nil])
puts "#{key}: #{'|' * (scale(value) * 68.0)}"
endThe result:
Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||| Integer:y: |||||||||||||||||||| Integer:x: |||||||||||||||||||||| Integer:y: |||||||||||||||| Integer:x: |||||||||||||||||||||| Integer:y: |||||||||||||| Integer:x: ||||||||||||||||||||||| Integer:y: |||||||||||||| Integer:x: ||||||||||||||||||||||||| Integer:y: |||||||||||||| Integer:x: ||||||||||||||||||||||||||| Integer:y: |||||||||||||| Integer:x: ||||||||||||||||||||||||||||||| Integer:y: |||||||||||| Integer:x: ||||||||||||||||||||||||||||||||| Integer:y: |||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: |||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: |||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||| Integer:x: |||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||||| Integer:x: ||||||||||||||||||||||||||| Integer:y: ||||||||||||||||||||||