From nobody at rubyforge.org Wed Nov 7 05:41:47 2007 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 7 Nov 2007 05:41:47 -0500 (EST) Subject: [Ruburple-submits] [43] trunk/ruburple: added some fixes from Aman Gupta Message-ID: <20071107104148.133C91858622@rubyforge.org> Revision: 43 Author: zond Date: 2007-11-07 05:41:47 -0500 (Wed, 07 Nov 2007) Log Message: ----------- added some fixes from Aman Gupta Modified Paths: -------------- trunk/ruburple/README trunk/ruburple/ext/ruburple_ext.c trunk/ruburple/lib/ruburple/ruburple.rb trunk/ruburple/tests/ruburple_test.rb Modified: trunk/ruburple/README =================================================================== --- trunk/ruburple/README 2007-06-15 06:46:06 UTC (rev 42) +++ trunk/ruburple/README 2007-11-07 10:41:47 UTC (rev 43) @@ -28,8 +28,8 @@ require 'ruburple' Ruburple::init - Ruburple::subscribe(:received_im_msg, (Proc.new do |a,b,c,d,e| puts "rcv im: #{a}, #{b}, #{c}, #{d}, #{e}" end)) - Ruburple::subscribe(:signed_on, (Proc.new do |a| puts "signed on: #{a}" end)) + Ruburple::subscribe(:received_im_msg) do |a,b,c,d,e| puts "rcv im: #{a}, #{b}, #{c}, #{d}, #{e}" end + Ruburple::subscribe(:signed_on) do |a| puts "signed on: #{a}" end p = Ruburple::get_protocol("MSN") puts "gonna connect to #{p.id}, #{p.name}, #{p.version}, #{p.summary}, #{p.description}, #{p.author}, #{p.homepage}" a = p.get_account("some at msn.account", "some_msn_password") Modified: trunk/ruburple/ext/ruburple_ext.c =================================================================== --- trunk/ruburple/ext/ruburple_ext.c 2007-06-15 06:46:06 UTC (rev 42) +++ trunk/ruburple/ext/ruburple_ext.c 2007-11-07 10:41:47 UTC (rev 43) @@ -1446,7 +1446,7 @@ { PurpleAccount *account; PURPLE_ACCOUNT(self, account); - return INT2NUM(POINTER_TO_GUINT(account)); + return INT2NUM(GPOINTER_TO_INT(account)); } static VALUE Modified: trunk/ruburple/lib/ruburple/ruburple.rb =================================================================== --- trunk/ruburple/lib/ruburple/ruburple.rb 2007-06-15 06:46:06 UTC (rev 42) +++ trunk/ruburple/lib/ruburple/ruburple.rb 2007-11-07 10:41:47 UTC (rev 43) @@ -90,8 +90,10 @@ :file_send_complete => Ruburple::HANDLE_XFERS } - def self.subscribe(event, callable) + def self.subscribe(event, callable = nil, &block) raise "No such event: #{event}" unless subsystem_handle = @@events[event] + raise "Proc or block required" unless block_given? or callable + callable = block if block_given? self._subscribe(subsystem_handle, event.to_s.gsub(/_/, "-"), callable) end Modified: trunk/ruburple/tests/ruburple_test.rb =================================================================== --- trunk/ruburple/tests/ruburple_test.rb 2007-06-15 06:46:06 UTC (rev 42) +++ trunk/ruburple/tests/ruburple_test.rb 2007-11-07 10:41:47 UTC (rev 43) @@ -13,14 +13,14 @@ puts "testing init..." Ruburple::init puts "testing subscribe..." - Ruburple::subscribe(:signed_on, (Proc.new do |c| - puts "got signed_on from #{c.account.username}" - @@events[:signed_on] << c - end)) - Ruburple::subscribe(:received_im_msg, (Proc.new do |account, sender, message, conversation, flags| - puts "got received_im_msg from #{sender} to #{account.username}" - @@events[:received_im_msg] << [account.username, sender, message] - end)) + Ruburple::subscribe(:signed_on) do |c| + puts "got signed_on from #{c.account.username}" + @@events[:signed_on] << c + end + Ruburple::subscribe(:received_im_msg) do |account, sender, message, conversation, flags| + puts "got received_im_msg from #{sender} to #{account.username}" + @@events[:received_im_msg] << [account.username, sender, message] + end def setup @@events = { From nobody at rubyforge.org Tue Nov 13 16:11:26 2007 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Tue, 13 Nov 2007 16:11:26 -0500 (EST) Subject: [Ruburple-submits] [44] trunk/ruburple/lib/ruburple/ruburple.rb: added a join method to stop the main loop from executing Message-ID: <20071113211126.B1FFB18585E8@rubyforge.org> Revision: 44 Author: zond Date: 2007-11-13 16:11:26 -0500 (Tue, 13 Nov 2007) Log Message: ----------- added a join method to stop the main loop from executing Modified Paths: -------------- trunk/ruburple/lib/ruburple/ruburple.rb Modified: trunk/ruburple/lib/ruburple/ruburple.rb =================================================================== --- trunk/ruburple/lib/ruburple/ruburple.rb 2007-11-07 10:41:47 UTC (rev 43) +++ trunk/ruburple/lib/ruburple/ruburple.rb 2007-11-13 21:11:26 UTC (rev 44) @@ -97,6 +97,10 @@ self._subscribe(subsystem_handle, event.to_s.gsub(/_/, "-"), callable) end + def self.join + @@event_fetcher.join + end + def self.init @@event_fetcher.kill if defined?(@@event_fetcher) && @@event_fetcher @@event_fetcher = Thread.new do From nobody at rubyforge.org Tue Nov 27 04:38:26 2007 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Tue, 27 Nov 2007 04:38:26 -0500 (EST) Subject: [Ruburple-submits] [45] trunk/ruburple/ext/ruburple_ext.c: added the buddy icon patch from Joe Edelman Message-ID: <20071127093826.F3F5718585EE@rubyforge.org> Revision: 45 Author: zond Date: 2007-11-27 04:38:26 -0500 (Tue, 27 Nov 2007) Log Message: ----------- added the buddy icon patch from Joe Edelman Modified Paths: -------------- trunk/ruburple/ext/ruburple_ext.c Modified: trunk/ruburple/ext/ruburple_ext.c =================================================================== --- trunk/ruburple/ext/ruburple_ext.c 2007-11-13 21:11:26 UTC (rev 44) +++ trunk/ruburple/ext/ruburple_ext.c 2007-11-27 09:38:26 UTC (rev 45) @@ -139,6 +139,7 @@ #define RUBURPLE_SIGNAL_HANDLER(rb_ruburple_subscription,ruburple_signal_handler_pointer) Data_Get_Struct(rb_ruburple_subscription, RuburpleSignalHandler, ruburple_signal_handler_pointer) #define PURPLE_CONNECTION(rb_ruburple_protocol_connection,purple_connection_pointer) Data_Get_Struct(rb_ruburple_protocol_connection, PurpleConnection, purple_connection_pointer) #define PURPLE_BUDDY(rb_ruburple_blist_buddy,purple_buddy_pointer) Data_Get_Struct(rb_ruburple_blist_buddy, PurpleBuddy, purple_buddy_pointer) +#define PURPLE_BUDDY_ICON(rb_ruburple_blist_buddy_icon,purple_buddy_icon_pointer) Data_Get_Struct(rb_ruburple_blist_buddy_icon, PurpleBuddyIcon, purple_buddy_icon_pointer) #define PURPLE_STATUS(rb_ruburple_protocol_account_status,purple_status_pointer) Data_Get_Struct(rb_ruburple_protocol_account_status, PurpleStatus, purple_status_pointer) #define GPOINTER(rb_ruburple_pointer,gpointer) Data_Get_Struct(rb_ruburple_pointer, void, gpointer) @@ -1485,6 +1486,50 @@ return rb_str_new2((char *) call_and_get_result(ruburple_blist_buddy_get_alias, (gpointer) buddy)); } +static VALUE +rb_ruburple_blist_buddy_get_icon(VALUE self) +{ + PurpleBuddy *buddy; + PURPLE_BUDDY(self, buddy); + RETURN_QNIL_IF_NULL(buddy->icon); + return RB_RUBURPLE_BLIST_BUDDY_ICON(buddy->icon); +} + +static gpointer +ruburple_blist_buddy_icon_get_extension(gpointer data) +{ + return (gpointer) purple_buddy_icon_get_extension((PurpleBuddyIcon *) data); +} + +static VALUE +rb_ruburple_blist_buddy_icon_get_extension(VALUE self) +{ + PurpleBuddyIcon *buddy_icon; + char *extension; + PURPLE_BUDDY_ICON(self, buddy_icon); + extension = (char *) call_and_get_result(ruburple_blist_buddy_icon_get_extension, (gpointer) buddy_icon); + RETURN_QNIL_IF_NULL(extension); + return rb_str_new2(extension); +} + +static gpointer +ruburple_blist_buddy_icon_get_full_path(gpointer data) +{ + return (gpointer) purple_buddy_icon_get_full_path((PurpleBuddyIcon *) data); +} + +static VALUE +rb_ruburple_blist_buddy_icon_get_full_path(VALUE self) +{ + PurpleBuddyIcon *buddy_icon; + char *rval; + PURPLE_BUDDY_ICON(self, buddy_icon); + rval = (char *) call_and_get_result(ruburple_blist_buddy_icon_get_full_path, (gpointer) buddy_icon); + RETURN_QNIL_IF_NULL(rval); + return rb_str_new2(rval); +} + + #ifdef __cplusplus extern "C" { #endif @@ -1621,6 +1666,7 @@ rb_define_method(rb_ruburple_blist_buddy, "name", rb_ruburple_blist_buddy_get_name, 0); rb_define_method(rb_ruburple_blist_buddy, "status", rb_ruburple_blist_buddy_get_status, 0); rb_define_method(rb_ruburple_blist_buddy, "alias", rb_ruburple_blist_buddy_get_alias, 0); + rb_define_method(rb_ruburple_blist_buddy, "icon", rb_ruburple_blist_buddy_get_icon, 0); rb_ruburple_blist_group = rb_define_class_under(rb_ruburple_blist, "Group", rb_ruburple_blist_node); @@ -1629,6 +1675,8 @@ rb_ruburple_blist_chat = rb_define_class_under(rb_ruburple_blist, "Chat", rb_ruburple_blist_node); rb_ruburple_blist_buddy_icon = rb_define_class_under(rb_ruburple_blist, "BuddyIcon", rb_cObject); + rb_define_method(rb_ruburple_blist_buddy_icon, "extension", rb_ruburple_blist_buddy_icon_get_extension, 0); + rb_define_method(rb_ruburple_blist_buddy_icon, "full_path", rb_ruburple_blist_buddy_icon_get_full_path, 0); rb_ruburple_handle = rb_define_class_under(rb_ruburple, "Handle", rb_cObject); From nobody at rubyforge.org Wed Nov 28 18:23:26 2007 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 28 Nov 2007 18:23:26 -0500 (EST) Subject: [Ruburple-submits] [46] trunk/ruburple/README: modified README to cover later versions of Libpurple Message-ID: <20071128232326.1C3871858677@rubyforge.org> Revision: 46 Author: joe_edelman Date: 2007-11-28 18:23:25 -0500 (Wed, 28 Nov 2007) Log Message: ----------- modified README to cover later versions of Libpurple Modified Paths: -------------- trunk/ruburple/README Modified: trunk/ruburple/README =================================================================== --- trunk/ruburple/README 2007-11-27 09:38:26 UTC (rev 45) +++ trunk/ruburple/README 2007-11-28 23:23:25 UTC (rev 46) @@ -5,7 +5,7 @@ == Dependencies: -libpurple 2.0.0:: Distributed with Pidgin 2.0.0 (the application formerly known as Gaim): http://www.pidgin.im/ +libpurple 2.x.x:: Distributed with Pidgin 2.x.x (Ruburple has been verified to work with libpurple 2.0.0 and 2.2.2): http://www.pidgin.im/ glib-2.0:: Could possibly work with other versions, but right now my extconf.rb only looks for 2.0 (patches welcome): http://www.gtk.org/ pkg-config:: Just for extconf.rb to be able to find glib-2.0. Should be installed when you install glib, AFAIK.