mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
ruby: use notmuch_exclude_t enum
It exists since 2013, let's allow it to be used in Ruby. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
This commit is contained in:
parent
f44c83c083
commit
85ae2bcf56
3 changed files with 46 additions and 3 deletions
|
@ -154,6 +154,30 @@ Init_notmuch (void)
|
||||||
* Maximum allowed length of a tag
|
* Maximum allowed length of a tag
|
||||||
*/
|
*/
|
||||||
rb_define_const (mod, "TAG_MAX", INT2FIX (NOTMUCH_TAG_MAX));
|
rb_define_const (mod, "TAG_MAX", INT2FIX (NOTMUCH_TAG_MAX));
|
||||||
|
/*
|
||||||
|
* Document-const: Notmuch::EXCLUDE_FLAG
|
||||||
|
*
|
||||||
|
* Only flag excluded results
|
||||||
|
*/
|
||||||
|
rb_define_const (mod, "EXCLUDE_FLAG", INT2FIX (NOTMUCH_EXCLUDE_FLAG));
|
||||||
|
/*
|
||||||
|
* Document-const: Notmuch::EXCLUDE_TRUE
|
||||||
|
*
|
||||||
|
* Exclude messages from the results
|
||||||
|
*/
|
||||||
|
rb_define_const (mod, "EXCLUDE_TRUE", INT2FIX (NOTMUCH_EXCLUDE_TRUE));
|
||||||
|
/*
|
||||||
|
* Document-const: Notmuch::EXCLUDE_FALSE
|
||||||
|
*
|
||||||
|
* Don't exclude anything
|
||||||
|
*/
|
||||||
|
rb_define_const (mod, "EXCLUDE_FALSE", INT2FIX (NOTMUCH_EXCLUDE_FALSE));
|
||||||
|
/*
|
||||||
|
* Document-const: Notmuch::EXCLUDE_ALL
|
||||||
|
*
|
||||||
|
* Exclude all results
|
||||||
|
*/
|
||||||
|
rb_define_const (mod, "EXCLUDE_ALL", INT2FIX (NOTMUCH_EXCLUDE_ALL));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Document-class: Notmuch::BaseError
|
* Document-class: Notmuch::BaseError
|
||||||
|
|
|
@ -102,19 +102,21 @@ notmuch_rb_query_add_tag_exclude (VALUE self, VALUE tagv)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call-seq: QUERY.omit_excluded=(boolean) => nil
|
* call-seq: QUERY.omit_excluded=(fixnum) => nil
|
||||||
*
|
*
|
||||||
* Specify whether to omit excluded results or simply flag them.
|
* Specify whether to omit excluded results or simply flag them.
|
||||||
* By default, this is set to +true+.
|
* By default, this is set to +Notmuch::EXCLUDE_TRUE+.
|
||||||
*/
|
*/
|
||||||
VALUE
|
VALUE
|
||||||
notmuch_rb_query_set_omit_excluded (VALUE self, VALUE omitv)
|
notmuch_rb_query_set_omit_excluded (VALUE self, VALUE omitv)
|
||||||
{
|
{
|
||||||
notmuch_query_t *query;
|
notmuch_query_t *query;
|
||||||
|
notmuch_exclude_t value;
|
||||||
|
|
||||||
Data_Get_Notmuch_Query (self, query);
|
Data_Get_Notmuch_Query (self, query);
|
||||||
|
|
||||||
notmuch_query_set_omit_excluded (query, RTEST (omitv));
|
value = FIXNUM_P (omitv) ? FIX2UINT (omitv) : RTEST(omitv);
|
||||||
|
notmuch_query_set_omit_excluded (query, value);
|
||||||
|
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,4 +65,21 @@ db.all_tags.each do |tag|
|
||||||
end
|
end
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
notmuch config set search.exclude_tags deleted
|
||||||
|
generate_message '[subject]="Good"'
|
||||||
|
generate_message '[subject]="Bad"' "[in-reply-to]=\<$gen_msg_id\>"
|
||||||
|
notmuch new > /dev/null
|
||||||
|
notmuch tag +deleted id:$gen_msg_id
|
||||||
|
|
||||||
|
test_begin_subtest "omit excluded all"
|
||||||
|
notmuch search --output=threads --exclude=all tag:inbox > EXPECTED
|
||||||
|
test_ruby <<"EOF"
|
||||||
|
q = db.query('tag:inbox')
|
||||||
|
q.add_tag_exclude('deleted')
|
||||||
|
q.omit_excluded = Notmuch::EXCLUDE_ALL
|
||||||
|
q.search_threads.each do |t|
|
||||||
|
puts 'thread:%s' % t.thread_id
|
||||||
|
end
|
||||||
|
EOF
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue