purple_ruby 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/History.txt +5 -0
  2. data/ext/purple_ruby.c +44 -0
  3. metadata +4 -4
@@ -1,3 +1,8 @@
1
+ == 0.6.7
2
+
3
+ * Constant PURPLE_CONNECTION_ERROR
4
+ * Add Account#commond_send: the same interface with send_im but send through conversation
5
+
1
6
  == 0.6.6
2
7
 
3
8
  Logout
@@ -127,6 +127,7 @@ static PurpleEventLoopUiOps glib_eventloops =
127
127
  };
128
128
 
129
129
  static VALUE cPurpleRuby;
130
+ static VALUE cConnectionError;
130
131
  VALUE cAccount;
131
132
  const char* UI_ID = "purplegw";
132
133
  static GMainLoop *main_loop = NULL;
@@ -686,6 +687,29 @@ static VALUE send_im(VALUE self, VALUE name, VALUE message)
686
687
  }
687
688
  }
688
689
 
690
+ static VALUE common_send(VALUE self, VALUE name, VALUE message)
691
+ {
692
+ PurpleAccount *account;
693
+ Data_Get_Struct(self, PurpleAccount, account);
694
+
695
+ if (purple_account_is_connected(account)) {
696
+ PurpleBuddy* buddy = purple_find_buddy(account, RSTRING_PTR(name));
697
+ if (buddy != NULL) {
698
+ PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, RSTRING_PTR(name), account);
699
+ if (conv == NULL) {
700
+ conv = purple_conversation_new(PURPLE_CONV_TYPE_IM,
701
+ buddy->account, buddy->name);
702
+ }
703
+ purple_conv_im_send(PURPLE_CONV_IM(conv), RSTRING_PTR(message));
704
+ return INT2FIX(0);
705
+ } else {
706
+ return Qnil;
707
+ }
708
+ } else {
709
+ return Qnil;
710
+ }
711
+ }
712
+
689
713
  static VALUE username(VALUE self)
690
714
  {
691
715
  PurpleAccount *account;
@@ -829,8 +853,28 @@ void Init_purple_ruby()
829
853
  rb_define_const(cPurpleRuby, "NOTIFY_MSG_WARNING", INT2NUM(PURPLE_NOTIFY_MSG_WARNING));
830
854
  rb_define_const(cPurpleRuby, "NOTIFY_MSG_INFO", INT2NUM(PURPLE_NOTIFY_MSG_INFO));
831
855
 
856
+ cConnectionError = rb_define_class_under(cPurpleRuby, "ConnectionError", rb_cObject);
857
+ rb_define_const(cConnectionError, "NETWORK_ERROR", INT2NUM(PURPLE_CONNECTION_ERROR_NETWORK_ERROR));
858
+ rb_define_const(cConnectionError, "INVALID_USERNAME", INT2NUM(PURPLE_CONNECTION_ERROR_INVALID_USERNAME));
859
+ rb_define_const(cConnectionError, "AUTHENTICATION_FAILED", INT2NUM(PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED));
860
+ rb_define_const(cConnectionError, "AUTHENTICATION_IMPOSSIBLE", INT2NUM(PURPLE_CONNECTION_ERROR_AUTHENTICATION_IMPOSSIBLE));
861
+ rb_define_const(cConnectionError, "NO_SSL_SUPPORT", INT2NUM(PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT));
862
+ rb_define_const(cConnectionError, "ENCRYPTION_ERROR", INT2NUM(PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR));
863
+ rb_define_const(cConnectionError, "NAME_IN_USE", INT2NUM(PURPLE_CONNECTION_ERROR_NAME_IN_USE));
864
+ rb_define_const(cConnectionError, "INVALID_SETTINGS", INT2NUM(PURPLE_CONNECTION_ERROR_INVALID_SETTINGS));
865
+ rb_define_const(cConnectionError, "CERT_NOT_PROVIDED", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_NOT_PROVIDED));
866
+ rb_define_const(cConnectionError, "CERT_UNTRUSTED", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_UNTRUSTED));
867
+ rb_define_const(cConnectionError, "CERT_EXPIRED", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_EXPIRED));
868
+ rb_define_const(cConnectionError, "CERT_NOT_ACTIVATED", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_NOT_ACTIVATED));
869
+ rb_define_const(cConnectionError, "CERT_HOSTNAME_MISMATCH", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_HOSTNAME_MISMATCH));
870
+ rb_define_const(cConnectionError, "CERT_FINGERPRINT_MISMATCH", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_FINGERPRINT_MISMATCH));
871
+ rb_define_const(cConnectionError, "CERT_SELF_SIGNED", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_SELF_SIGNED));
872
+ rb_define_const(cConnectionError, "CERT_OTHER_ERROR", INT2NUM(PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR));
873
+ rb_define_const(cConnectionError, "OTHER_ERROR", INT2NUM(PURPLE_CONNECTION_ERROR_OTHER_ERROR));
874
+
832
875
  cAccount = rb_define_class_under(cPurpleRuby, "Account", rb_cObject);
833
876
  rb_define_method(cAccount, "send_im", send_im, 2);
877
+ rb_define_method(cAccount, "common_send", common_send, 2);
834
878
  rb_define_method(cAccount, "username", username, 0);
835
879
  rb_define_method(cAccount, "protocol_id", protocol_id, 0);
836
880
  rb_define_method(cAccount, "protocol_name", protocol_name, 0);
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purple_ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 6
10
- version: 0.6.6
9
+ - 7
10
+ version: 0.6.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - yong
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-15 00:00:00 +08:00
18
+ date: 2010-10-17 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency