1 /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
3 #include "tomoe-rb.h"
4
5 #define _SELF(obj) RVAL2TQRY(obj)
6
7 static VALUE
tq_add_reading(VALUE self,VALUE reading)8 tq_add_reading(VALUE self, VALUE reading)
9 {
10 tomoe_query_add_reading(_SELF(self), RVAL2TRDG(reading));
11 return Qnil;
12 }
13
14 static VALUE
tq_add_radical(VALUE self,VALUE radical)15 tq_add_radical(VALUE self, VALUE radical)
16 {
17 tomoe_query_add_radical(_SELF(self), RVAL2CSTR(radical));
18 return Qnil;
19 }
20
21 static VALUE
tq_set_variant(VALUE self,VALUE variant)22 tq_set_variant(VALUE self, VALUE variant)
23 {
24 tomoe_query_set_variant(_SELF(self), RVAL2CSTR(variant));
25 return Qnil;
26 }
27
28 static VALUE
tq_set_writing(VALUE self,VALUE writing)29 tq_set_writing(VALUE self, VALUE writing)
30 {
31 tomoe_query_set_writing(_SELF(self), RVAL2TWTG(writing));
32 return Qnil;
33 }
34
35 void
_tomoe_rb_init_tomoe_query(VALUE mTomoe)36 _tomoe_rb_init_tomoe_query(VALUE mTomoe)
37 {
38 VALUE cTomoeQuery;
39
40 cTomoeQuery = G_DEF_CLASS(TOMOE_TYPE_QUERY, "Query", mTomoe);
41
42 rb_define_method(cTomoeQuery, "add_reading", tq_add_reading, 1);
43 rb_define_method(cTomoeQuery, "add_radical", tq_add_radical, 1);
44 rb_define_method(cTomoeQuery, "set_variant", tq_set_variant, 1);
45 rb_define_method(cTomoeQuery, "set_writing", tq_set_writing, 1);
46
47 G_DEF_SETTERS(cTomoeQuery);
48 }
49