json 2.7.2 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.2
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 2024-04-04 00:00:00.000000000 Z
11
+ date: 2024-12-03 00:00:00.000000000 Z
11
12
  dependencies: []
12
13
  description: This is a JSON implementation as a Ruby extension in C.
13
14
  email: flori@ping.de
@@ -15,24 +16,20 @@ executables: []
15
16
  extensions:
16
17
  - ext/json/ext/generator/extconf.rb
17
18
  - ext/json/ext/parser/extconf.rb
18
- - ext/json/extconf.rb
19
19
  extra_rdoc_files:
20
20
  - README.md
21
21
  files:
22
+ - BSDL
22
23
  - CHANGES.md
23
- - LICENSE
24
+ - COPYING
25
+ - LEGAL
24
26
  - README.md
25
27
  - ext/json/ext/fbuffer/fbuffer.h
26
- - ext/json/ext/generator/depend
27
28
  - ext/json/ext/generator/extconf.rb
28
29
  - ext/json/ext/generator/generator.c
29
- - ext/json/ext/generator/generator.h
30
- - ext/json/ext/parser/depend
31
30
  - ext/json/ext/parser/extconf.rb
32
31
  - ext/json/ext/parser/parser.c
33
- - ext/json/ext/parser/parser.h
34
32
  - ext/json/ext/parser/parser.rl
35
- - ext/json/extconf.rb
36
33
  - json.gemspec
37
34
  - lib/json.rb
38
35
  - lib/json/add/bigdecimal.rb
@@ -51,21 +48,21 @@ files:
51
48
  - lib/json/add/time.rb
52
49
  - lib/json/common.rb
53
50
  - lib/json/ext.rb
51
+ - lib/json/ext/generator/state.rb
54
52
  - lib/json/generic_object.rb
55
- - lib/json/pure.rb
56
- - lib/json/pure/generator.rb
57
- - lib/json/pure/parser.rb
53
+ - lib/json/truffle_ruby/generator.rb
58
54
  - lib/json/version.rb
59
- homepage: https://flori.github.io/json
55
+ homepage: https://ruby.github.io/json
60
56
  licenses:
61
57
  - Ruby
62
58
  metadata:
63
- bug_tracker_uri: https://github.com/flori/json/issues
64
- changelog_uri: https://github.com/flori/json/blob/master/CHANGES.md
65
- documentation_uri: https://flori.github.io/json/doc/index.html
66
- homepage_uri: https://flori.github.io/json
67
- source_code_uri: https://github.com/flori/json
68
- wiki_uri: https://github.com/flori/json/wiki
59
+ bug_tracker_uri: https://github.com/ruby/json/issues
60
+ changelog_uri: https://github.com/ruby/json/blob/master/CHANGES.md
61
+ documentation_uri: https://ruby.github.io/json/doc/index.html
62
+ homepage_uri: https://ruby.github.io/json
63
+ source_code_uri: https://github.com/ruby/json
64
+ wiki_uri: https://github.com/ruby/json/wiki
65
+ post_install_message:
69
66
  rdoc_options:
70
67
  - "--title"
71
68
  - JSON implementation for Ruby
@@ -77,14 +74,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
74
  requirements:
78
75
  - - ">="
79
76
  - !ruby/object:Gem::Version
80
- version: '2.3'
77
+ version: '2.7'
81
78
  required_rubygems_version: !ruby/object:Gem::Requirement
82
79
  requirements:
83
80
  - - ">="
84
81
  - !ruby/object:Gem::Version
85
82
  version: '0'
86
83
  requirements: []
87
- rubygems_version: 3.6.0.dev
84
+ rubygems_version: 3.5.11
85
+ signing_key:
88
86
  specification_version: 4
89
87
  summary: JSON Implementation for Ruby
90
88
  test_files: []
@@ -1 +0,0 @@
1
- generator.o: generator.c generator.h $(srcdir)/../fbuffer/fbuffer.h
@@ -1,177 +0,0 @@
1
- #ifndef _GENERATOR_H_
2
- #define _GENERATOR_H_
3
-
4
- #include <math.h>
5
- #include <ctype.h>
6
-
7
- #include "ruby.h"
8
-
9
- #ifdef HAVE_RUBY_RE_H
10
- #include "ruby/re.h"
11
- #else
12
- #include "re.h"
13
- #endif
14
-
15
- #ifndef rb_intern_str
16
- #define rb_intern_str(string) SYM2ID(rb_str_intern(string))
17
- #endif
18
-
19
- #ifndef rb_obj_instance_variables
20
- #define rb_obj_instance_variables(object) rb_funcall(object, rb_intern("instance_variables"), 0)
21
- #endif
22
-
23
- #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key))
24
-
25
- /* unicode definitions */
26
-
27
- #define UNI_STRICT_CONVERSION 1
28
-
29
- typedef unsigned long UTF32; /* at least 32 bits */
30
- typedef unsigned short UTF16; /* at least 16 bits */
31
- typedef unsigned char UTF8; /* typically 8 bits */
32
-
33
- #define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
34
- #define UNI_MAX_BMP (UTF32)0x0000FFFF
35
- #define UNI_MAX_UTF16 (UTF32)0x0010FFFF
36
- #define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
37
- #define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF
38
-
39
- #define UNI_SUR_HIGH_START (UTF32)0xD800
40
- #define UNI_SUR_HIGH_END (UTF32)0xDBFF
41
- #define UNI_SUR_LOW_START (UTF32)0xDC00
42
- #define UNI_SUR_LOW_END (UTF32)0xDFFF
43
-
44
- static const int halfShift = 10; /* used for shifting by 10 bits */
45
-
46
- static const UTF32 halfBase = 0x0010000UL;
47
- static const UTF32 halfMask = 0x3FFUL;
48
-
49
- static unsigned char isLegalUTF8(const UTF8 *source, unsigned long length);
50
- static void unicode_escape(char *buf, UTF16 character);
51
- static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16 character);
52
- static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string, char script_safe);
53
- static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string, char script_safe);
54
- static char *fstrndup(const char *ptr, unsigned long len);
55
-
56
- /* ruby api and some helpers */
57
-
58
- typedef struct JSON_Generator_StateStruct {
59
- char *indent;
60
- long indent_len;
61
- char *space;
62
- long space_len;
63
- char *space_before;
64
- long space_before_len;
65
- char *object_nl;
66
- long object_nl_len;
67
- char *array_nl;
68
- long array_nl_len;
69
- FBuffer *array_delim;
70
- FBuffer *object_delim;
71
- FBuffer *object_delim2;
72
- long max_nesting;
73
- char allow_nan;
74
- char ascii_only;
75
- char script_safe;
76
- char strict;
77
- long depth;
78
- long buffer_initial_length;
79
- } JSON_Generator_State;
80
-
81
- #define GET_STATE_TO(self, state) \
82
- TypedData_Get_Struct(self, JSON_Generator_State, &JSON_Generator_State_type, state)
83
-
84
- #define GET_STATE(self) \
85
- JSON_Generator_State *state; \
86
- GET_STATE_TO(self, state)
87
-
88
- #define GENERATE_JSON(type) \
89
- FBuffer *buffer; \
90
- VALUE Vstate; \
91
- JSON_Generator_State *state; \
92
- \
93
- rb_scan_args(argc, argv, "01", &Vstate); \
94
- Vstate = cState_from_state_s(cState, Vstate); \
95
- TypedData_Get_Struct(Vstate, JSON_Generator_State, &JSON_Generator_State_type, state); \
96
- buffer = cState_prepare_buffer(Vstate); \
97
- generate_json_##type(buffer, Vstate, state, self); \
98
- return fbuffer_to_s(buffer)
99
-
100
- static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self);
101
- static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self);
102
- #ifdef RUBY_INTEGER_UNIFICATION
103
- static VALUE mInteger_to_json(int argc, VALUE *argv, VALUE self);
104
- #else
105
- static VALUE mFixnum_to_json(int argc, VALUE *argv, VALUE self);
106
- static VALUE mBignum_to_json(int argc, VALUE *argv, VALUE self);
107
- #endif
108
- static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self);
109
- static VALUE mString_included_s(VALUE self, VALUE modul);
110
- static VALUE mString_to_json(int argc, VALUE *argv, VALUE self);
111
- static VALUE mString_to_json_raw_object(VALUE self);
112
- static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self);
113
- static VALUE mString_Extend_json_create(VALUE self, VALUE o);
114
- static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self);
115
- static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self);
116
- static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self);
117
- static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self);
118
- static void State_free(void *state);
119
- static VALUE cState_s_allocate(VALUE klass);
120
- static VALUE cState_configure(VALUE self, VALUE opts);
121
- static VALUE cState_to_h(VALUE self);
122
- static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
123
- static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
124
- static void generate_json_array(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
125
- static void generate_json_string(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
126
- static void generate_json_null(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
127
- static void generate_json_false(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
128
- static void generate_json_true(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
129
- #ifdef RUBY_INTEGER_UNIFICATION
130
- static void generate_json_integer(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
131
- #endif
132
- static void generate_json_fixnum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
133
- static void generate_json_bignum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
134
- static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj);
135
- static VALUE cState_partial_generate(VALUE self, VALUE obj);
136
- static VALUE cState_generate(VALUE self, VALUE obj);
137
- static VALUE cState_initialize(int argc, VALUE *argv, VALUE self);
138
- static VALUE cState_from_state_s(VALUE self, VALUE opts);
139
- static VALUE cState_indent(VALUE self);
140
- static VALUE cState_indent_set(VALUE self, VALUE indent);
141
- static VALUE cState_space(VALUE self);
142
- static VALUE cState_space_set(VALUE self, VALUE space);
143
- static VALUE cState_space_before(VALUE self);
144
- static VALUE cState_space_before_set(VALUE self, VALUE space_before);
145
- static VALUE cState_object_nl(VALUE self);
146
- static VALUE cState_object_nl_set(VALUE self, VALUE object_nl);
147
- static VALUE cState_array_nl(VALUE self);
148
- static VALUE cState_array_nl_set(VALUE self, VALUE array_nl);
149
- static VALUE cState_max_nesting(VALUE self);
150
- static VALUE cState_max_nesting_set(VALUE self, VALUE depth);
151
- static VALUE cState_allow_nan_p(VALUE self);
152
- static VALUE cState_ascii_only_p(VALUE self);
153
- static VALUE cState_depth(VALUE self);
154
- static VALUE cState_depth_set(VALUE self, VALUE depth);
155
- static VALUE cState_script_safe(VALUE self);
156
- static VALUE cState_script_safe_set(VALUE self, VALUE depth);
157
- static VALUE cState_strict(VALUE self);
158
- static VALUE cState_strict_set(VALUE self, VALUE strict);
159
- static FBuffer *cState_prepare_buffer(VALUE self);
160
- #ifndef ZALLOC
161
- #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type)))
162
- static inline void *ruby_zalloc(size_t n)
163
- {
164
- void *p = ruby_xmalloc(n);
165
- memset(p, 0, n);
166
- return p;
167
- }
168
- #endif
169
- #ifdef TypedData_Make_Struct
170
- static const rb_data_type_t JSON_Generator_State_type;
171
- #define NEW_TYPEDDATA_WRAPPER 1
172
- #else
173
- #define TypedData_Make_Struct(klass, type, ignore, json) Data_Make_Struct(klass, type, NULL, State_free, json)
174
- #define TypedData_Get_Struct(self, JSON_Generator_State, ignore, json) Data_Get_Struct(self, JSON_Generator_State, json)
175
- #endif
176
-
177
- #endif
@@ -1 +0,0 @@
1
- parser.o: parser.c parser.h $(srcdir)/../fbuffer/fbuffer.h
@@ -1,96 +0,0 @@
1
- #ifndef _PARSER_H_
2
- #define _PARSER_H_
3
-
4
- #include "ruby.h"
5
-
6
- #ifndef HAVE_RUBY_RE_H
7
- #include "re.h"
8
- #endif
9
-
10
- #ifdef HAVE_RUBY_ST_H
11
- #include "ruby/st.h"
12
- #else
13
- #include "st.h"
14
- #endif
15
-
16
- #ifndef MAYBE_UNUSED
17
- # define MAYBE_UNUSED(x) x
18
- #endif
19
-
20
- #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key))
21
-
22
- /* unicode */
23
-
24
- typedef unsigned long UTF32; /* at least 32 bits */
25
- typedef unsigned short UTF16; /* at least 16 bits */
26
- typedef unsigned char UTF8; /* typically 8 bits */
27
-
28
- #define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
29
- #define UNI_SUR_HIGH_START (UTF32)0xD800
30
- #define UNI_SUR_HIGH_END (UTF32)0xDBFF
31
- #define UNI_SUR_LOW_START (UTF32)0xDC00
32
- #define UNI_SUR_LOW_END (UTF32)0xDFFF
33
-
34
- typedef struct JSON_ParserStruct {
35
- VALUE Vsource;
36
- char *source;
37
- long len;
38
- char *memo;
39
- VALUE create_id;
40
- int max_nesting;
41
- int allow_nan;
42
- int parsing_name;
43
- int symbolize_names;
44
- int freeze;
45
- VALUE object_class;
46
- VALUE array_class;
47
- VALUE decimal_class;
48
- int create_additions;
49
- VALUE match_string;
50
- FBuffer *fbuffer;
51
- } JSON_Parser;
52
-
53
- #define GET_PARSER \
54
- GET_PARSER_INIT; \
55
- if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance")
56
- #define GET_PARSER_INIT \
57
- JSON_Parser *json; \
58
- TypedData_Get_Struct(self, JSON_Parser, &JSON_Parser_type, json)
59
-
60
- #define MinusInfinity "-Infinity"
61
- #define EVIL 0x666
62
-
63
- static UTF32 unescape_unicode(const unsigned char *p);
64
- static int convert_UTF32_to_UTF8(char *buf, UTF32 ch);
65
- static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting);
66
- static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting);
67
- static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result);
68
- static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result);
69
- static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting);
70
- static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int symbolize);
71
- static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result);
72
- static VALUE convert_encoding(VALUE source);
73
- static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self);
74
- static VALUE cParser_parse(VALUE self);
75
- static void JSON_mark(void *json);
76
- static void JSON_free(void *json);
77
- static VALUE cJSON_parser_s_allocate(VALUE klass);
78
- static VALUE cParser_source(VALUE self);
79
- #ifndef ZALLOC
80
- #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type)))
81
- static inline void *ruby_zalloc(size_t n)
82
- {
83
- void *p = ruby_xmalloc(n);
84
- memset(p, 0, n);
85
- return p;
86
- }
87
- #endif
88
- #ifdef TypedData_Make_Struct
89
- static const rb_data_type_t JSON_Parser_type;
90
- #define NEW_TYPEDDATA_WRAPPER 1
91
- #else
92
- #define TypedData_Make_Struct(klass, type, ignore, json) Data_Make_Struct(klass, type, NULL, JSON_free, json)
93
- #define TypedData_Get_Struct(self, JSON_Parser, ignore, json) Data_Get_Struct(self, JSON_Parser, json)
94
- #endif
95
-
96
- #endif
data/ext/json/extconf.rb DELETED
@@ -1,3 +0,0 @@
1
- require 'mkmf'
2
-
3
- create_makefile('json')