Class: JSON::Ext::ParserConfig

Inherits:
Object
  • Object
show all
Defined in:
ext/json/ext/parser/parser.c

Instance Method Summary collapse

Constructor Details

#new(opts) ⇒ Object

Creates a new JSON::Ext::ParserConfig instance.

It will be configured by the opts hash. opts can have the following keys:

opts can have the following keys:

  • max_nesting: The maximum depth of nesting allowed in the parsed data structures. Disable depth checking with :max_nesting => false|nil|0, it defaults to 100.

  • allow_nan: If set to true, allow NaN, Infinity and -Infinity in defiance of RFC 4627 to be parsed by the Parser. This option defaults to false.

  • symbolize_names: If set to true, returns symbols for the names (keys) in a JSON object. Otherwise strings are returned, which is also the default. It’s not possible to use this option in conjunction with the create_additions option.

  • decimal_class: Specifies which class to use instead of the default

    (Float) when parsing decimal numbers. This class must accept a single
    string argument in its constructor.
    


1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
# File 'ext/json/ext/parser/parser.c', line 1212

static VALUE cParserConfig_initialize(VALUE self, VALUE opts)
{
    GET_PARSER_CONFIG;

    parser_config_init(config, opts);

    RB_OBJ_WRITTEN(self, Qundef, config->decimal_class);

    return self;
}

Instance Method Details

#parse(source) ⇒ Object

Parses the current JSON text source and returns the complete data

structure as a result.
It raises JSON::ParserError if fail to parse.


1260
1261
1262
1263
1264
# File 'ext/json/ext/parser/parser.c', line 1260

static VALUE cParserConfig_parse(VALUE self, VALUE Vsource)
{
    GET_PARSER_CONFIG;
    return cParser_parse(config, Vsource);
}