class Xmms::Collection::Attributes

Public Class Methods

new(p1) click to toggle source
static VALUE
c_attrs_init (VALUE self, VALUE collection)
{
        rb_iv_set (self, "collection", collection);

        return self;
}

Public Instance Methods

[](p1) click to toggle source

HAVE_RB_PROTECT_INSPECT

static VALUE
c_attrs_aref (VALUE self, VALUE key)
{
        RbCollection *coll = NULL;
        VALUE tmp;
        int s;
        const char *value;

        StringValue (key);

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        s = xmmsv_coll_attribute_get_string (coll->real, StringValuePtr (key), &value);
        if (!s)
                return Qnil;

        return rb_str_new2 (value);
}
[]=(p1, p2) click to toggle source
static VALUE
c_attrs_aset (VALUE self, VALUE key, VALUE value)
{
        RbCollection *coll = NULL;
        VALUE tmp;

        StringValue (key);
        StringValue (value);

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        xmmsv_coll_attribute_set_string (coll->real, StringValuePtr (key),
                                         StringValuePtr (value));

        return Qnil;
}
delete(p1) click to toggle source
static VALUE
c_attrs_delete (VALUE self, VALUE key)
{
        RbCollection *coll = NULL;
        VALUE tmp;

        StringValue (key);

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        xmmsv_coll_attribute_remove (coll->real, StringValuePtr (key));

        return Qnil;
}
each() click to toggle source
static VALUE
c_attrs_each (VALUE self)
{
        RbCollection *coll = NULL;
        xmmsv_t *attributes;
        VALUE tmp;

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        attributes = xmmsv_coll_attributes_get (coll->real);

        xmmsv_dict_foreach (attributes, attr_each,
                            XINT_TO_POINTER (EACH_PAIR));

        return self;
}
Also aliased as: each_pair
each_key() click to toggle source
static VALUE
c_attrs_each_key (VALUE self)
{
        RbCollection *coll = NULL;
        xmmsv_t *attributes;
        VALUE tmp;

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        attributes = xmmsv_coll_attributes_get (coll->real);

        xmmsv_dict_foreach (attributes, attr_each,
                            XINT_TO_POINTER (EACH_KEY));

        return self;
}
each_pair()
Alias for: each
each_value() click to toggle source
static VALUE
c_attrs_each_value (VALUE self)
{
        RbCollection *coll = NULL;
        xmmsv_t *attributes;
        VALUE tmp;

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        attributes = xmmsv_coll_attributes_get (coll->real);

        xmmsv_dict_foreach (attributes, attr_each,
                            XINT_TO_POINTER (EACH_VALUE));

        return self;
}
has_key?(p1) click to toggle source
static VALUE
c_attrs_has_key (VALUE self, VALUE key)
{
        RbCollection *coll = NULL;
        VALUE tmp;
        int s;

        StringValue (key);

        tmp = rb_iv_get (self, "collection");
        Data_Get_Struct (tmp, RbCollection, coll);

        s = xmmsv_coll_attribute_get_string (coll->real, StringValuePtr (key), NULL);

        return s ? Qtrue : Qfalse;
}
Also aliased as: include?, key?, member?
include?(p1)
Alias for: has_key?
inspect() click to toggle source
static VALUE
c_attrs_inspect (VALUE self)
{
        return rb_protect_inspect (attrs_inspect, self, 0);
}
key?(p1)
Alias for: has_key?
member?(p1)
Alias for: has_key?