mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +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
|
||||
*/
|
||||
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
|
||||
|
|
|
@ -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.
|
||||
* By default, this is set to +true+.
|
||||
* By default, this is set to +Notmuch::EXCLUDE_TRUE+.
|
||||
*/
|
||||
VALUE
|
||||
notmuch_rb_query_set_omit_excluded (VALUE self, VALUE omitv)
|
||||
{
|
||||
notmuch_query_t *query;
|
||||
notmuch_exclude_t value;
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -65,4 +65,21 @@ db.all_tags.each do |tag|
|
|||
end
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue