Beispiel #1
0
static mrb_value mrb_vedis_append(mrb_state *mrb, mrb_value self)
{
    vedis *vstore = DATA_PTR(self);
    mrb_value key_obj, val_obj;
    mrb_get_args(mrb, "oo", &key_obj, &val_obj);
    return mrb_vedis_append_s(mrb, key_obj, val_obj, vstore);
}
Beispiel #2
0
static mrb_value mrb_vedis_append_hash(mrb_state *mrb, mrb_value self)
{
    int ai;
    vedis *vstore = DATA_PTR(self);
    mrb_value hash, keys, key, val;

    mrb_get_args(mrb, "H", &hash);
    keys = mrb_hash_keys(mrb, hash);
    ai = mrb_gc_arena_save(mrb);
    while (!mrb_nil_p(key = mrb_ary_pop(mrb, keys))) {
        val = mrb_hash_get(mrb, hash, key);
        mrb_vedis_append_s(mrb, key, val, vstore);
        mrb_gc_arena_restore(mrb, ai);
    }
    return mrb_true_value();
}