Add support for Rubinius by removing MRI-specific encoding API calls
The rb_enc_alias function is not exposed in MRI's encoding.h. There is no Ruby equivalent of this C function. It should be considered an implementation detail.
The rb_enc_replicate function is exposed in encoding.h and there is a Ruby equivalent to this C function.
Can rb_enc_replicate be used in place of rb_enc_alias?
The use of ENCODING_GET_INLINED is MRI implementation-specific. There are perfectly valid Encoding APIs like rb_enc_get(obj) and rb_enc_get_index(obj). Even the use of the index I would argue is depending on an MRI implementation detail, but Rubinius supports the index API in the C-API. rb_enc_get_index is going to call ENCODING_GET_INLINED and the overhead of one more C function call cannot outweigh the value of implementation-agnostic code.
Please consider using rb_enc_get_index instead.