Module: Iconv::Failure

Included in:
BrokenLibrary, IllegalSequence, InvalidCharacter, InvalidEncoding, OutOfRange
Defined in:
ext/iconv/iconv.c

Instance Method Summary collapse

Instance Method Details

#failedObject

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



1209
1210
1211
1212
1213
# File 'ext/iconv/iconv.c', line 1209

static VALUE
iconv_failure_failed(VALUE self)
{
    return rb_attr_get(self, rb_failed);
}

#new(to, from, [options]) ⇒ Object

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



415
416
417
418
419
420
421
422
# File 'ext/iconv/iconv.c', line 415

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;
}

#inspectObject

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



1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
# File 'ext/iconv/iconv.c', line 1221

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);
}

#successObject

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.



1196
1197
1198
1199
1200
# File 'ext/iconv/iconv.c', line 1196

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