Class: CMigemo

Inherits:
Data
  • Object
show all
Defined in:
ext/cmigemo.c

Constant Summary collapse

MIGEMO =
INT2NUM(MIGEMO_DICTID_MIGEMO)
ROMA2HIRA =
INT2NUM(MIGEMO_DICTID_ROMA2HIRA)
HIRA2KATA =
INT2NUM(MIGEMO_DICTID_HIRA2KATA)
HAN2ZEN =
INT2NUM(MIGEMO_DICTID_HAN2ZEN)
ZEN2HAN =
INT2NUM(MIGEMO_DICTID_ZEN2HAN)

Instance Method Summary collapse

Instance Method Details

#closeObject



49
50
51
52
53
54
55
56
57
58
59
# File 'ext/cmigemo.c', line 49

static VALUE
rb_cmigemo_close(VALUE self)
{
  struct RMigemo *rm;
  Data_Get_Struct(self, struct RMigemo, rm);
  if(rm->open){
    migemo_close(rm->migemo);
    rm->open = 0;
  }
  return Qnil;
}

#load(id, rstr) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'ext/cmigemo.c', line 80

static VALUE
rb_cmigemo_load(VALUE self, VALUE id, VALUE rstr)
{
  struct RMigemo *rm;
  int result;
  int dict_id = NUM2INT(id);
  char *dict = StringValuePtr(rstr);
  Data_Get_Struct(self, struct RMigemo, rm);

  if(rm->open){
    result = migemo_load(rm->migemo, dict_id, dict);
    if(result == MIGEMO_DICTID_INVALID){
      rb_raise(rb_eArgError, "invalid dict file");
    }

    return INT2NUM(result);
  } else {
    rb_raise(rb_eException, "migemo closed");
  }
}

#query(rstr) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'ext/cmigemo.c', line 61

static VALUE
rb_cmigemo_query(VALUE self, VALUE rstr)
{
  struct RMigemo *rm;
  unsigned char* str;
  migemo *m;
  VALUE result;

  Data_Get_Struct(self, struct RMigemo, rm);
  if(rm->open){
    str = migemo_query(rm->migemo, (unsigned char*)StringValuePtr(rstr));
    result = rb_tainted_str_new2(str);
    migemo_release(rm->migemo, str);
    return result;
  } else {
    rb_raise(rb_eException, "migemo closed");
  }
}