In Files

  • iconv/iconv.c

Iconv::Failure

Base attributes for Iconv exceptions.

Public Class Methods

new(to, from, [options]) click to toggle source

Creates new code converter from a coding-system designated with from to another one designated with to.

Parameters ↑

to

encoding name for destination

from

encoding name for source

options

options for converter

Exceptions ↑

TypeError

if to or from aren't String

InvalidEncoding

if designated converter couldn't find out

SystemCallError

if iconv_open(3) fails

 
               static VALUE
iconv_failure_initialize(VALUE error, VALUE mesg, VALUE success, VALUE failed)
{
    rb_call_super(1, &mesg);
    rb_ivar_set(error, rb_success, success);
    rb_ivar_set(error, rb_failed, failed);
    return error;
}
            

Public Instance Methods

failed click to toggle source

Returns substring of the original string passed to Iconv that starts at the character caused the exception.

 
               static VALUE
iconv_failure_failed(VALUE self)
{
    return rb_attr_get(self, rb_failed);
}
            
inspect click to toggle source

Returns inspected string like as: #<class: success, failed>

 
               static VALUE
iconv_failure_inspect(VALUE self)
{
    const char *cname = rb_class2name(CLASS_OF(self));
    VALUE success = rb_attr_get(self, rb_success);
    VALUE failed = rb_attr_get(self, rb_failed);
    VALUE str = rb_str_buf_cat2(rb_str_new2("#<"), cname);
    str = rb_str_buf_cat(str, ": ", 2);
    str = rb_str_buf_append(str, rb_inspect(success));
    str = rb_str_buf_cat(str, ", ", 2);
    str = rb_str_buf_append(str, rb_inspect(failed));
    return rb_str_buf_cat(str, ">", 1);
}
            
success click to toggle source

Returns string(s) translated successfully until the exception occurred.

  • In the case of failure occurred within Iconv.iconv, returned value is an array of strings translated successfully preceding failure and the last element is string on the way.

 
               static VALUE
iconv_failure_success(VALUE self)
{
    return rb_attr_get(self, rb_success);
}