ext/rb-grn-encoding.c in groonga-0.0.6 vs ext/rb-grn-encoding.c in groonga-0.0.7

- old
+ new

@@ -146,9 +146,46 @@ } return rb_encoding; } +#ifdef HAVE_RUBY_ENCODING_H +rb_encoding * +rb_grn_encoding_to_ruby_encoding (grn_encoding encoding) +{ + rb_encoding *rb_encoding; + + if (encoding == GRN_ENC_DEFAULT) + encoding = grn_get_default_encoding(); + + switch (encoding) { + case GRN_ENC_NONE: + rb_encoding = rb_ascii8bit_encoding(); + break; + case GRN_ENC_EUC_JP: + rb_encoding = rb_enc_find("euc-jp"); + break; + case GRN_ENC_UTF8: + rb_encoding = rb_utf8_encoding(); + break; + case GRN_ENC_SJIS: + rb_encoding = rb_enc_find("CP932"); + break; + case GRN_ENC_LATIN1: + rb_encoding = rb_enc_find("ISO-8859-1"); + break; + case GRN_ENC_KOI8R: + rb_encoding = rb_enc_find("KOI8-R"); + break; + default: + rb_raise(rb_eArgError, "unknown encoding: %d", encoding); + break; + } + + return rb_encoding; +} +#endif + /* * call-seq: * Groonga::Encoding.default -> エンコーディング * * デフォルトのエンコーディングを返す。