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