Module: JSON::Ext::Generator::GeneratorMethods::String

Defined in:
ext/json/ext/generator/generator.c,
ext/json/ext/generator/generator.c

Overview

:nodoc:

Defined Under Namespace

Modules: Extend

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(modul) ⇒ Object

Extends modul with the String::Extend module.



469
470
471
472
473
# File 'ext/json/ext/generator/generator.c', line 469

static VALUE mString_included_s(VALUE self, VALUE modul) {
    VALUE result = rb_funcall(modul, i_extend, 1, mString_Extend);
    rb_call_super(1, &modul);
    return result;
}

Instance Method Details

#to_json(*) ⇒ Object

This string should be encoded with UTF-8 A call to this method returns a JSON string encoded with UTF16 big endian characters as u????.



482
483
484
485
# File 'ext/json/ext/generator/generator.c', line 482

static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
{
    GENERATE_JSON(string);
}

#to_json_raw(*args) ⇒ Object

This method creates a JSON text from the result of a call to to_json_raw_object of this String.



511
512
513
514
515
516
# File 'ext/json/ext/generator/generator.c', line 511

static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self)
{
    VALUE obj = mString_to_json_raw_object(self);
    Check_Type(obj, T_HASH);
    return mHash_to_json(argc, argv, obj);
}

#to_json_raw_objectObject

This method creates a raw object hash, that can be nested into other data structures and will be generated as a raw string. This method should be used, if you want to convert raw strings to JSON instead of UTF-8 strings, e. g. binary data.



495
496
497
498
499
500
501
502
503
# File 'ext/json/ext/generator/generator.c', line 495

static VALUE mString_to_json_raw_object(VALUE self)
{
    VALUE ary;
    VALUE result = rb_hash_new();
    rb_hash_aset(result, rb_funcall(mJSON, i_create_id, 0), rb_class_name(rb_obj_class(self)));
    ary = rb_funcall(self, i_unpack, 1, rb_str_new2("C*"));
    rb_hash_aset(result, rb_str_new2("raw"), ary);
    return result;
}