@@ -963,6 +963,12 @@ static VALUE cState_generate(VALUE self, VALUE obj)
963963 return result ;
964964}
965965
966+ static VALUE cState_initialize (int argc , VALUE * argv , VALUE self )
967+ {
968+ rb_warn ("The json gem extension was loaded with the stdlib ruby code. You should upgrade rubygems with `gem update --system`" );
969+ return self ;
970+ }
971+
966972/*
967973 * call-seq: initialize_copy(orig)
968974 *
@@ -1408,6 +1414,9 @@ void Init_generator(void)
14081414 cState = rb_define_class_under (mGenerator , "State" , rb_cObject );
14091415 rb_define_alloc_func (cState , cState_s_allocate );
14101416 rb_define_singleton_method (cState , "from_state" , cState_from_state_s , 1 );
1417+ rb_define_method (cState , "initialize" , cState_initialize , -1 );
1418+ rb_define_alias (cState , "initialize" , "initialize" ); // avoid method redefinition warnings
1419+
14111420 rb_define_method (cState , "initialize_copy" , cState_init_copy , 1 );
14121421 rb_define_method (cState , "indent" , cState_indent , 0 );
14131422 rb_define_method (cState , "indent=" , cState_indent_set , 1 );
@@ -1498,4 +1507,6 @@ void Init_generator(void)
14981507 usascii_encindex = rb_usascii_encindex ();
14991508 utf8_encindex = rb_utf8_encindex ();
15001509 binary_encindex = rb_ascii8bit_encindex ();
1510+
1511+ rb_require ("json/ext/generator/state" );
15011512}
0 commit comments