Class: PurpleRuby::Account

Inherits:
Object
  • Object
show all
Defined in:
ext/purple_ruby.c

Instance Method Summary collapse

Instance Method Details

#add_buddy(buddy) ⇒ Object



703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
# File 'ext/purple_ruby.c', line 703

static VALUE add_buddy(VALUE self, VALUE buddy)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  
	PurpleBuddy* pb = purple_buddy_new(account, RSTRING(buddy)->ptr, NULL);
  
  char* group = _("Buddies");
  PurpleGroup* grp = purple_find_group(group);
	if (!grp)
	{
		grp = purple_group_new(group);
		purple_blist_add_group(grp, NULL);
	}
  
  purple_blist_add_buddy(pb, NULL, grp, NULL);
  purple_account_add_buddy(account, pb);
  return Qtrue;
}

#deleteObject



757
758
759
760
761
762
763
# File 'ext/purple_ruby.c', line 757

static VALUE acc_delete(VALUE self)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  purple_accounts_delete(account);
  return Qnil;
}

#get_bool_setting(name, default_value) ⇒ Object



667
668
669
670
671
672
673
674
# File 'ext/purple_ruby.c', line 667

static VALUE get_bool_setting(VALUE self, VALUE name, VALUE default_value)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  gboolean value = purple_account_get_bool(account, RSTRING(name)->ptr, 
    (default_value == Qfalse || default_value == Qnil) ? FALSE : TRUE); 
  return (TRUE == value) ? Qtrue : Qfalse;
}

#get_string_setting(name, default_value) ⇒ Object



676
677
678
679
680
681
682
# File 'ext/purple_ruby.c', line 676

static VALUE get_string_setting(VALUE self, VALUE name, VALUE default_value)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  const char* value = purple_account_get_string(account, RSTRING(name)->ptr, RSTRING(default_value)->ptr);
  return (NULL == value) ? Qnil : rb_str_new2(value);
}

#has_buddy?(buddy) ⇒ Boolean

Returns:

  • (Boolean)


746
747
748
749
750
751
752
753
754
755
# File 'ext/purple_ruby.c', line 746

static VALUE has_buddy(VALUE self, VALUE buddy)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  if (purple_find_buddy(account, RSTRING(buddy)->ptr) != NULL) {
    return Qtrue;
  } else {
    return Qfalse;
  }
}

#protocol_idObject



653
654
655
656
657
658
# File 'ext/purple_ruby.c', line 653

static VALUE protocol_id(VALUE self)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  return rb_str_new2(purple_account_get_protocol_id(account));
}

#protocol_nameObject



660
661
662
663
664
665
# File 'ext/purple_ruby.c', line 660

static VALUE protocol_name(VALUE self)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  return rb_str_new2(purple_account_get_protocol_name(account));
}

#remove_buddy(buddy) ⇒ Object



723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
# File 'ext/purple_ruby.c', line 723

static VALUE remove_buddy(VALUE self, VALUE buddy)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  
	PurpleBuddy* pb = purple_find_buddy(account, RSTRING(buddy)->ptr);
	if (NULL == pb) {
	  rb_raise(rb_eRuntimeError, "Failed to remove buddy for %s : %s does not exist", purple_account_get_username(account), RSTRING(buddy)->ptr);
	}
	
	char* group = _("Buddies");
  PurpleGroup* grp = purple_find_group(group);
	if (!grp)
	{
		grp = purple_group_new(group);
		purple_blist_add_group(grp, NULL);
	}
	
	purple_blist_remove_buddy(pb);
	purple_account_remove_buddy(account, pb, grp);
  return Qtrue;
}

#send_im(name, message) ⇒ Object



633
634
635
636
637
638
639
640
641
642
643
644
# File 'ext/purple_ruby.c', line 633

static VALUE send_im(VALUE self, VALUE name, VALUE message)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  
  if (purple_account_is_connected(account)) {
    int i = serv_send_im(purple_account_get_connection(account), RSTRING(name)->ptr, RSTRING(message)->ptr, 0);
    return INT2FIX(i);
  } else {
    return Qnil;
  }
}

#usernameObject



646
647
648
649
650
651
# File 'ext/purple_ruby.c', line 646

static VALUE username(VALUE self)
{
  PurpleAccount *account;
  Data_Get_Struct(self, PurpleAccount, account);
  return rb_str_new2(purple_account_get_username(account));
}