/*
* call-seq:
* groups -> array
*
* Returns the names of all the groups who received this message.
*
* XXX: document Spread::MembershipMessage#members as well
*/
static VALUE
sm_groups(VALUE obj)
{
struct SpreadMessage *sp_mess;
Data_Get_Struct(obj, struct SpreadMessage, sp_mess);
if (NIL_P(sp_mess->rb_groups))
{
/* First call, so initialize and cache the array */
int i;
sp_mess->rb_groups = rb_ary_new2(sp_mess->num_groups);
for (i = 0; i < sp_mess->num_groups; i++)
{
VALUE group_str = rb_str_new2(sp_mess->groups[i]);
rb_ary_store(sp_mess->rb_groups, i, group_str);
}
}
return sp_mess->rb_groups;
}