Будет работать следующее расширение C:
#include <ruby.h>
extern VALUE rb_cEncoding;
int rb_encdb_alias(const char *alias, const char *orig);
/*
* Add alias to an existing encoding
*
* Encoding.add_alias('hebrew', 'Windows-1255') -> 'hebrew'
*
*/
VALUE rb_add_alias(VALUE self, VALUE alias, VALUE orig)
{
if (rb_encdb_alias(RSTRING_PTR(alias), RSTRING_PTR(orig)) == -1) {
return Qnil;
} else {
return alias;
}
}
void Init_enc_alias() {
rb_define_singleton_method(rb_cEncoding, "add_alias", rb_add_alias, 2);
}