1

I'm currently playing with wxRuby and RubyMSN to learn to program desktop-programs. I know it is a hard task instead of just crating a notepad etc, but I need a bigger task than a notepad.

I now do manage to use them by them self, but I cant get them to work together. The problem is the loop.

RubyMSN wants to have an endless loop like

while true
  sleep 1
end

or using the GUI's mainloop or something

I currently have this code as the loop

TheApp.new.main_loop()
while true
  sleep 1
end

I have my window working, and the main_loop doing something. But I cant log in, it's like I doesn't have any loop (from the tutorial), I only get one debug line. But as soon as I close the window and lets the endless loop do it's job it works like a charm.

Someone ?

ThoKra
  • 2,959
  • 2
  • 27
  • 38

1 Answers1

2

Worked for me. Try this: copy the minimal sample from the wxruby distribution, and modify minimal.rb so that you start your msn thread just before the wx main loop:

require 'msn/msn'

conn = MSNConnection.new("rubybot@channelwood.org", "secretpassword123")
conn.start

# Wx::App is the container class for any wxruby app. To start an
# application, either define a subclass of Wx::App, create an instance,
# and call its main_loop method, OR, simply call the Wx::App.run class
# method, as shown here.
Wx::App.run do 
  self.app_name = 'Minimal'
  frame = MinimalFrame.new("Minimal wxRuby App")
  frame.show
end

You'll need to symlink the msn directory inside the minimal directory to get the require statement working, of course.

You don't need the while true {sleep 1} loop; that's just to prevent the program from exiting so that your msn thread can keep running. The wx main loop accomplishes the same purpose.

Martin DeMello
  • 11,876
  • 7
  • 49
  • 64
  • 1
    Doesn't seem to get any further. This is my code now: http://pastie.org/729297 It still stops after "--> Sent: "VER 1 MSNP9 CVR0\r\n" " – ThoKra Dec 05 '09 at 19:04
  • 1
    might be a platform issue. your code worked cheerfully for me (did the same thing with and without wx) on my box (ruby 1.9.1 on archlinux) – Martin DeMello Dec 05 '09 at 19:12
  • Updated to ruby 1.9.1 and wxruby19 and now it works :) Thanks :) – ThoKra Dec 05 '09 at 20:22