oj 3.16.9 → 3.16.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/ext/oj/fast.c +3 -6
- data/ext/oj/mimic_json.c +3 -6
- data/ext/oj/oj.c +2 -4
- data/ext/oj/parse.c +15 -5
- data/ext/oj/parser.c +1 -1
- data/ext/oj/parser.h +2 -0
- data/ext/oj/rails.c +1 -2
- data/ext/oj/saj.c +3 -6
- data/ext/oj/scp.c +3 -6
- data/ext/oj/stream_writer.c +1 -7
- data/ext/oj/strict.c +2 -4
- data/ext/oj/string_writer.c +1 -3
- data/lib/oj/version.rb +1 -1
- metadata +3 -98
- data/test/_test_active.rb +0 -75
- data/test/_test_active_mimic.rb +0 -95
- data/test/_test_mimic_rails.rb +0 -123
- data/test/activerecord/result_test.rb +0 -31
- data/test/activesupport6/abstract_unit.rb +0 -44
- data/test/activesupport6/decoding_test.rb +0 -133
- data/test/activesupport6/encoding_test.rb +0 -542
- data/test/activesupport6/encoding_test_cases.rb +0 -98
- data/test/activesupport6/test_common.rb +0 -17
- data/test/activesupport6/test_helper.rb +0 -163
- data/test/activesupport6/time_zone_test_helpers.rb +0 -39
- data/test/activesupport7/abstract_unit.rb +0 -52
- data/test/activesupport7/decoding_test.rb +0 -125
- data/test/activesupport7/encoding_test.rb +0 -536
- data/test/activesupport7/encoding_test_cases.rb +0 -104
- data/test/activesupport7/time_zone_test_helpers.rb +0 -47
- data/test/files.rb +0 -29
- data/test/foo.rb +0 -26
- data/test/helper.rb +0 -39
- data/test/isolated/shared.rb +0 -309
- data/test/isolated/test_mimic_after.rb +0 -13
- data/test/isolated/test_mimic_alone.rb +0 -12
- data/test/isolated/test_mimic_as_json.rb +0 -45
- data/test/isolated/test_mimic_before.rb +0 -13
- data/test/isolated/test_mimic_define.rb +0 -28
- data/test/isolated/test_mimic_rails_after.rb +0 -22
- data/test/isolated/test_mimic_rails_before.rb +0 -21
- data/test/isolated/test_mimic_redefine.rb +0 -15
- data/test/json_gem/json_addition_test.rb +0 -216
- data/test/json_gem/json_common_interface_test.rb +0 -155
- data/test/json_gem/json_encoding_test.rb +0 -107
- data/test/json_gem/json_ext_parser_test.rb +0 -21
- data/test/json_gem/json_fixtures_test.rb +0 -36
- data/test/json_gem/json_generator_test.rb +0 -413
- data/test/json_gem/json_generic_object_test.rb +0 -90
- data/test/json_gem/json_parser_test.rb +0 -477
- data/test/json_gem/json_string_matching_test.rb +0 -42
- data/test/json_gem/test_helper.rb +0 -30
- data/test/mem.rb +0 -34
- data/test/perf.rb +0 -102
- data/test/perf_compat.rb +0 -128
- data/test/perf_dump.rb +0 -50
- data/test/perf_fast.rb +0 -162
- data/test/perf_file.rb +0 -62
- data/test/perf_object.rb +0 -134
- data/test/perf_once.rb +0 -59
- data/test/perf_parser.rb +0 -183
- data/test/perf_saj.rb +0 -101
- data/test/perf_scp.rb +0 -140
- data/test/perf_simple.rb +0 -289
- data/test/perf_strict.rb +0 -137
- data/test/perf_wab.rb +0 -129
- data/test/prec.rb +0 -23
- data/test/sample/change.rb +0 -13
- data/test/sample/dir.rb +0 -18
- data/test/sample/doc.rb +0 -35
- data/test/sample/file.rb +0 -47
- data/test/sample/group.rb +0 -15
- data/test/sample/hasprops.rb +0 -15
- data/test/sample/layer.rb +0 -11
- data/test/sample/line.rb +0 -20
- data/test/sample/oval.rb +0 -10
- data/test/sample/rect.rb +0 -9
- data/test/sample/shape.rb +0 -34
- data/test/sample/text.rb +0 -19
- data/test/sample.rb +0 -54
- data/test/sample_json.rb +0 -37
- data/test/test_compat.rb +0 -567
- data/test/test_custom.rb +0 -555
- data/test/test_debian.rb +0 -50
- data/test/test_fast.rb +0 -526
- data/test/test_file.rb +0 -250
- data/test/test_gc.rb +0 -60
- data/test/test_generate.rb +0 -21
- data/test/test_hash.rb +0 -39
- data/test/test_integer_range.rb +0 -72
- data/test/test_null.rb +0 -376
- data/test/test_object.rb +0 -1030
- data/test/test_parser.rb +0 -11
- data/test/test_parser_debug.rb +0 -27
- data/test/test_parser_saj.rb +0 -337
- data/test/test_parser_usual.rb +0 -255
- data/test/test_rails.rb +0 -35
- data/test/test_saj.rb +0 -188
- data/test/test_scp.rb +0 -431
- data/test/test_strict.rb +0 -441
- data/test/test_various.rb +0 -801
- data/test/test_wab.rb +0 -311
- data/test/test_writer.rb +0 -396
- data/test/tests.rb +0 -33
- data/test/tests_mimic.rb +0 -23
- data/test/tests_mimic_addition.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1095d7a176bd19396bd99cf23df33564dbdf983b36a74254085700a12ce4293
|
4
|
+
data.tar.gz: ef1b5958d6edf181843066dc4b60a93e861779cfa387b88d0f866d642c3e9a6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c396a33f0a2e64282f13a1b834c8804429f97de515dffcf1e8cba852fbe645301c9f6b0e7d64552a795c70e0262e8828f650a1ac9243391af8c07a2ecd621f35
|
7
|
+
data.tar.gz: 43ddbc0d8f2d5bea7580b0f88fa2c4981a661098f3e041aac6f8185029e2018f99ef33478ebbf62b35c31357f1d48adb25f6889b6049054add214a834e8e696a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 3.16.10 - 2025-02-24
|
4
|
+
|
5
|
+
- Changed oj_parser_type to be non-static.
|
6
|
+
|
3
7
|
## 3.16.9 - 2024-12-28
|
4
8
|
|
5
9
|
- Fixed `Oj::Parser` create_id size issue #931.
|
@@ -64,6 +68,7 @@
|
|
64
68
|
## 3.14.3 - 2023-04-07
|
65
69
|
|
66
70
|
- Fixed compat parse with optimized Hash when parsing a JSON::GenericObject.
|
71
|
+
- Deprecated Ruby <= 2.6.10
|
67
72
|
|
68
73
|
## 3.14.2 - 2023-02-10
|
69
74
|
|
data/ext/oj/fast.c
CHANGED
@@ -193,8 +193,7 @@ static VALUE leaf_value(Doc doc, Leaf leaf) {
|
|
193
193
|
case T_FIXNUM: leaf_fixnum_value(leaf); break;
|
194
194
|
case T_FLOAT: leaf_float_value(leaf); break;
|
195
195
|
case T_STRING:
|
196
|
-
leaf->value =
|
197
|
-
leaf->value = oj_encode(leaf->value);
|
196
|
+
leaf->value = rb_utf8_str_new_cstr(leaf->str);
|
198
197
|
leaf->value_type = RUBY_VAL;
|
199
198
|
break;
|
200
199
|
case T_ARRAY: return leaf_array_value(doc, leaf); break;
|
@@ -309,8 +308,7 @@ static VALUE leaf_hash_value(Doc doc, Leaf leaf) {
|
|
309
308
|
volatile VALUE key;
|
310
309
|
|
311
310
|
do {
|
312
|
-
key =
|
313
|
-
key = oj_encode(key);
|
311
|
+
key = rb_utf8_str_new_cstr(e->key);
|
314
312
|
rb_hash_aset(h, key, leaf_value(doc, e));
|
315
313
|
e = e->next;
|
316
314
|
} while (e != first);
|
@@ -1257,8 +1255,7 @@ static VALUE doc_local_key(VALUE self) {
|
|
1257
1255
|
volatile VALUE key = Qnil;
|
1258
1256
|
|
1259
1257
|
if (T_HASH == leaf->parent_type) {
|
1260
|
-
key =
|
1261
|
-
key = oj_encode(key);
|
1258
|
+
key = rb_utf8_str_new_cstr(leaf->key);
|
1262
1259
|
} else if (T_ARRAY == leaf->parent_type) {
|
1263
1260
|
key = LONG2NUM(leaf->index);
|
1264
1261
|
}
|
data/ext/oj/mimic_json.c
CHANGED
@@ -246,8 +246,7 @@ static VALUE mimic_dump(int argc, VALUE *argv, VALUE self) {
|
|
246
246
|
if (0 == out.buf) {
|
247
247
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
248
248
|
}
|
249
|
-
rstr =
|
250
|
-
rstr = oj_encode(rstr);
|
249
|
+
rstr = rb_utf8_str_new_cstr(out.buf);
|
251
250
|
if (2 <= argc && Qnil != argv[1] && rb_respond_to(argv[1], oj_write_id)) {
|
252
251
|
VALUE io = argv[1];
|
253
252
|
VALUE args[1];
|
@@ -396,8 +395,7 @@ static VALUE mimic_generate_core(int argc, VALUE *argv, Options copts) {
|
|
396
395
|
if (0 == out.buf) {
|
397
396
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
398
397
|
}
|
399
|
-
rstr =
|
400
|
-
rstr = oj_encode(rstr);
|
398
|
+
rstr = rb_utf8_str_new_cstr(out.buf);
|
401
399
|
|
402
400
|
oj_out_free(&out);
|
403
401
|
|
@@ -768,8 +766,7 @@ static VALUE mimic_object_to_json(int argc, VALUE *argv, VALUE self) {
|
|
768
766
|
if (NULL == out.buf) {
|
769
767
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
770
768
|
}
|
771
|
-
rstr =
|
772
|
-
rstr = oj_encode(rstr);
|
769
|
+
rstr = rb_utf8_str_new_cstr(out.buf);
|
773
770
|
|
774
771
|
oj_out_free(&out);
|
775
772
|
|
data/ext/oj/oj.c
CHANGED
@@ -1277,8 +1277,7 @@ static VALUE dump_body(VALUE a) {
|
|
1277
1277
|
if (0 == arg->out->buf) {
|
1278
1278
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
1279
1279
|
}
|
1280
|
-
rstr =
|
1281
|
-
rstr = oj_encode(rstr);
|
1280
|
+
rstr = rb_utf8_str_new_cstr(arg->out->buf);
|
1282
1281
|
|
1283
1282
|
return rstr;
|
1284
1283
|
}
|
@@ -1378,8 +1377,7 @@ static VALUE to_json(int argc, VALUE *argv, VALUE self) {
|
|
1378
1377
|
if (0 == out.buf) {
|
1379
1378
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
1380
1379
|
}
|
1381
|
-
rstr =
|
1382
|
-
rstr = oj_encode(rstr);
|
1380
|
+
rstr = rb_utf8_str_new_cstr(out.buf);
|
1383
1381
|
|
1384
1382
|
oj_out_free(&out);
|
1385
1383
|
|
data/ext/oj/parse.c
CHANGED
@@ -183,9 +183,19 @@ static void unicode_to_chars(ParseInfo pi, Buf buf, uint32_t code) {
|
|
183
183
|
}
|
184
184
|
}
|
185
185
|
|
186
|
+
static const unsigned char end_of_scan_string[] = {
|
187
|
+
// Filled 1 at the positions of '\0', '\\', and '"'
|
188
|
+
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
|
189
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
190
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
191
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
192
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
193
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
194
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
195
|
+
};
|
186
196
|
static inline const char *scan_string_noSIMD(const char *str, const char *end) {
|
187
|
-
for (;
|
188
|
-
if (
|
197
|
+
for (; str < end; str++) {
|
198
|
+
if (end_of_scan_string[(unsigned char)*str]) {
|
189
199
|
break;
|
190
200
|
}
|
191
201
|
}
|
@@ -1123,12 +1133,12 @@ CLEANUP:
|
|
1123
1133
|
// The json gem requires the error message be UTF-8 encoded. In
|
1124
1134
|
// additional the complete JSON source must be returned. There
|
1125
1135
|
// does not seem to be a size limit.
|
1126
|
-
VALUE msg =
|
1136
|
+
VALUE msg = rb_utf8_str_new_cstr(pi->err.msg);
|
1127
1137
|
VALUE args[1];
|
1128
1138
|
|
1129
1139
|
if (NULL != pi->json) {
|
1130
|
-
msg = rb_str_append(msg,
|
1131
|
-
msg = rb_str_append(msg,
|
1140
|
+
msg = rb_str_append(msg, rb_utf8_str_new_cstr(" in '"));
|
1141
|
+
msg = rb_str_append(msg, rb_utf8_str_new_cstr(pi->json));
|
1132
1142
|
}
|
1133
1143
|
args[0] = msg;
|
1134
1144
|
if (pi->err.clas == oj_parse_error_class) {
|
data/ext/oj/parser.c
CHANGED
data/ext/oj/parser.h
CHANGED
data/ext/oj/rails.c
CHANGED
@@ -933,8 +933,7 @@ static VALUE encode(VALUE obj, ROptTable ropts, Options opts, int argc, VALUE *a
|
|
933
933
|
if (0 == out.buf) {
|
934
934
|
rb_raise(rb_eNoMemError, "Not enough memory.");
|
935
935
|
}
|
936
|
-
rstr =
|
937
|
-
rstr = oj_encode(rstr);
|
936
|
+
rstr = rb_utf8_str_new_cstr(out.buf);
|
938
937
|
}
|
939
938
|
if (Yes == copts.circular) {
|
940
939
|
oj_cache8_delete(out.circ_cache);
|
data/ext/oj/saj.c
CHANGED
@@ -94,8 +94,7 @@ inline static void call_add_value(VALUE handler, VALUE value, const char *key) {
|
|
94
94
|
if (0 == key) {
|
95
95
|
k = Qnil;
|
96
96
|
} else {
|
97
|
-
k =
|
98
|
-
k = oj_encode(k);
|
97
|
+
k = rb_utf8_str_new_cstr(key);
|
99
98
|
}
|
100
99
|
rb_funcall(handler, oj_add_value_id, 2, value, k);
|
101
100
|
}
|
@@ -106,8 +105,7 @@ inline static void call_no_value(VALUE handler, ID method, const char *key) {
|
|
106
105
|
if (0 == key) {
|
107
106
|
k = Qnil;
|
108
107
|
} else {
|
109
|
-
k =
|
110
|
-
k = oj_encode(k);
|
108
|
+
k = rb_utf8_str_new_cstr(key);
|
111
109
|
}
|
112
110
|
rb_funcall(handler, method, 1, k);
|
113
111
|
}
|
@@ -257,9 +255,8 @@ static void read_str(ParseInfo pi, const char *key) {
|
|
257
255
|
|
258
256
|
text = read_quoted_value(pi);
|
259
257
|
if (pi->has_add_value) {
|
260
|
-
VALUE s =
|
258
|
+
VALUE s = rb_utf8_str_new_cstr(text);
|
261
259
|
|
262
|
-
s = oj_encode(s);
|
263
260
|
call_add_value(pi->handler, s, key);
|
264
261
|
}
|
265
262
|
}
|
data/ext/oj/scp.c
CHANGED
@@ -56,9 +56,8 @@ static void add_value(ParseInfo pi, VALUE val) {
|
|
56
56
|
}
|
57
57
|
|
58
58
|
static void add_cstr(ParseInfo pi, const char *str, size_t len, const char *orig) {
|
59
|
-
volatile VALUE rstr =
|
59
|
+
volatile VALUE rstr = rb_utf8_str_new(str, len);
|
60
60
|
|
61
|
-
rstr = oj_encode(rstr);
|
62
61
|
rb_funcall(pi->handler, oj_add_value_id, 1, rstr);
|
63
62
|
}
|
64
63
|
|
@@ -87,9 +86,8 @@ static VALUE hash_key(ParseInfo pi, const char *key, size_t klen) {
|
|
87
86
|
}
|
88
87
|
|
89
88
|
static void hash_set_cstr(ParseInfo pi, Val kval, const char *str, size_t len, const char *orig) {
|
90
|
-
volatile VALUE rstr =
|
89
|
+
volatile VALUE rstr = rb_utf8_str_new(str, len);
|
91
90
|
|
92
|
-
rstr = oj_encode(rstr);
|
93
91
|
rb_funcall(pi->handler, oj_hash_set_id, 3, stack_peek(&pi->stack)->val, oj_calc_hash_key(pi, kval), rstr);
|
94
92
|
}
|
95
93
|
|
@@ -107,9 +105,8 @@ static void hash_set_value(ParseInfo pi, Val kval, VALUE value) {
|
|
107
105
|
}
|
108
106
|
|
109
107
|
static void array_append_cstr(ParseInfo pi, const char *str, size_t len, const char *orig) {
|
110
|
-
volatile VALUE rstr =
|
108
|
+
volatile VALUE rstr = rb_utf8_str_new(str, len);
|
111
109
|
|
112
|
-
rstr = oj_encode(rstr);
|
113
110
|
rb_funcall(pi->handler, oj_array_append_id, 2, stack_peek(&pi->stack)->val, rstr);
|
114
111
|
}
|
115
112
|
|
data/ext/oj/stream_writer.c
CHANGED
@@ -44,13 +44,7 @@ static void stream_writer_write(StreamWriter sw) {
|
|
44
44
|
case STRING_IO:
|
45
45
|
case STREAM_IO:
|
46
46
|
case FILE_IO: {
|
47
|
-
volatile VALUE rs =
|
48
|
-
|
49
|
-
// Oddly enough, when pushing ASCII characters with UTF-8 encoding or
|
50
|
-
// even ASCII-8BIT does not change the output encoding. Pushing any
|
51
|
-
// non-ASCII no matter what the encoding changes the output encoding
|
52
|
-
// to ASCII-8BIT if it the string is not forced to UTF-8 here.
|
53
|
-
rs = oj_encode(rs);
|
47
|
+
volatile VALUE rs = rb_utf8_str_new(sw->sw.out.buf, size);
|
54
48
|
rb_funcall(sw->stream, oj_write_id, 1, rs);
|
55
49
|
break;
|
56
50
|
}
|
data/ext/oj/strict.c
CHANGED
@@ -19,8 +19,7 @@ VALUE oj_cstr_to_value(const char *str, size_t len, size_t cache_str) {
|
|
19
19
|
if (len < cache_str) {
|
20
20
|
rstr = oj_str_intern(str, len);
|
21
21
|
} else {
|
22
|
-
rstr =
|
23
|
-
rstr = oj_encode(rstr);
|
22
|
+
rstr = rb_utf8_str_new(str, len);
|
24
23
|
}
|
25
24
|
return rstr;
|
26
25
|
}
|
@@ -35,8 +34,7 @@ VALUE oj_calc_hash_key(ParseInfo pi, Val parent) {
|
|
35
34
|
if (Yes == pi->options.sym_key) {
|
36
35
|
rkey = ID2SYM(rb_intern3(parent->key, parent->klen, oj_utf8_encoding));
|
37
36
|
} else {
|
38
|
-
rkey =
|
39
|
-
rkey = oj_encode(rkey);
|
37
|
+
rkey = rb_utf8_str_new(parent->key, parent->klen);
|
40
38
|
OBJ_FREEZE(rkey); // frozen when used as a Hash key anyway
|
41
39
|
}
|
42
40
|
return rkey;
|
data/ext/oj/string_writer.c
CHANGED
@@ -469,9 +469,7 @@ static VALUE str_writer_reset(VALUE self) {
|
|
469
469
|
static VALUE str_writer_to_s(VALUE self) {
|
470
470
|
StrWriter sw;
|
471
471
|
TypedData_Get_Struct(self, struct _strWriter, &oj_string_writer_type, sw);
|
472
|
-
|
473
|
-
|
474
|
-
return oj_encode(rstr);
|
472
|
+
return rb_utf8_str_new(sw->out.buf, sw->out.cur - sw->out.buf);
|
475
473
|
}
|
476
474
|
|
477
475
|
/* Document-method: as_json
|
data/lib/oj/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.16.
|
4
|
+
version: 3.16.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Ohler
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-02-25 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: bigdecimal
|
@@ -200,98 +199,6 @@ files:
|
|
200
199
|
- pages/Rails.md
|
201
200
|
- pages/Security.md
|
202
201
|
- pages/WAB.md
|
203
|
-
- test/_test_active.rb
|
204
|
-
- test/_test_active_mimic.rb
|
205
|
-
- test/_test_mimic_rails.rb
|
206
|
-
- test/activerecord/result_test.rb
|
207
|
-
- test/activesupport6/abstract_unit.rb
|
208
|
-
- test/activesupport6/decoding_test.rb
|
209
|
-
- test/activesupport6/encoding_test.rb
|
210
|
-
- test/activesupport6/encoding_test_cases.rb
|
211
|
-
- test/activesupport6/test_common.rb
|
212
|
-
- test/activesupport6/test_helper.rb
|
213
|
-
- test/activesupport6/time_zone_test_helpers.rb
|
214
|
-
- test/activesupport7/abstract_unit.rb
|
215
|
-
- test/activesupport7/decoding_test.rb
|
216
|
-
- test/activesupport7/encoding_test.rb
|
217
|
-
- test/activesupport7/encoding_test_cases.rb
|
218
|
-
- test/activesupport7/time_zone_test_helpers.rb
|
219
|
-
- test/files.rb
|
220
|
-
- test/foo.rb
|
221
|
-
- test/helper.rb
|
222
|
-
- test/isolated/shared.rb
|
223
|
-
- test/isolated/test_mimic_after.rb
|
224
|
-
- test/isolated/test_mimic_alone.rb
|
225
|
-
- test/isolated/test_mimic_as_json.rb
|
226
|
-
- test/isolated/test_mimic_before.rb
|
227
|
-
- test/isolated/test_mimic_define.rb
|
228
|
-
- test/isolated/test_mimic_rails_after.rb
|
229
|
-
- test/isolated/test_mimic_rails_before.rb
|
230
|
-
- test/isolated/test_mimic_redefine.rb
|
231
|
-
- test/json_gem/json_addition_test.rb
|
232
|
-
- test/json_gem/json_common_interface_test.rb
|
233
|
-
- test/json_gem/json_encoding_test.rb
|
234
|
-
- test/json_gem/json_ext_parser_test.rb
|
235
|
-
- test/json_gem/json_fixtures_test.rb
|
236
|
-
- test/json_gem/json_generator_test.rb
|
237
|
-
- test/json_gem/json_generic_object_test.rb
|
238
|
-
- test/json_gem/json_parser_test.rb
|
239
|
-
- test/json_gem/json_string_matching_test.rb
|
240
|
-
- test/json_gem/test_helper.rb
|
241
|
-
- test/mem.rb
|
242
|
-
- test/perf.rb
|
243
|
-
- test/perf_compat.rb
|
244
|
-
- test/perf_dump.rb
|
245
|
-
- test/perf_fast.rb
|
246
|
-
- test/perf_file.rb
|
247
|
-
- test/perf_object.rb
|
248
|
-
- test/perf_once.rb
|
249
|
-
- test/perf_parser.rb
|
250
|
-
- test/perf_saj.rb
|
251
|
-
- test/perf_scp.rb
|
252
|
-
- test/perf_simple.rb
|
253
|
-
- test/perf_strict.rb
|
254
|
-
- test/perf_wab.rb
|
255
|
-
- test/prec.rb
|
256
|
-
- test/sample.rb
|
257
|
-
- test/sample/change.rb
|
258
|
-
- test/sample/dir.rb
|
259
|
-
- test/sample/doc.rb
|
260
|
-
- test/sample/file.rb
|
261
|
-
- test/sample/group.rb
|
262
|
-
- test/sample/hasprops.rb
|
263
|
-
- test/sample/layer.rb
|
264
|
-
- test/sample/line.rb
|
265
|
-
- test/sample/oval.rb
|
266
|
-
- test/sample/rect.rb
|
267
|
-
- test/sample/shape.rb
|
268
|
-
- test/sample/text.rb
|
269
|
-
- test/sample_json.rb
|
270
|
-
- test/test_compat.rb
|
271
|
-
- test/test_custom.rb
|
272
|
-
- test/test_debian.rb
|
273
|
-
- test/test_fast.rb
|
274
|
-
- test/test_file.rb
|
275
|
-
- test/test_gc.rb
|
276
|
-
- test/test_generate.rb
|
277
|
-
- test/test_hash.rb
|
278
|
-
- test/test_integer_range.rb
|
279
|
-
- test/test_null.rb
|
280
|
-
- test/test_object.rb
|
281
|
-
- test/test_parser.rb
|
282
|
-
- test/test_parser_debug.rb
|
283
|
-
- test/test_parser_saj.rb
|
284
|
-
- test/test_parser_usual.rb
|
285
|
-
- test/test_rails.rb
|
286
|
-
- test/test_saj.rb
|
287
|
-
- test/test_scp.rb
|
288
|
-
- test/test_strict.rb
|
289
|
-
- test/test_various.rb
|
290
|
-
- test/test_wab.rb
|
291
|
-
- test/test_writer.rb
|
292
|
-
- test/tests.rb
|
293
|
-
- test/tests_mimic.rb
|
294
|
-
- test/tests_mimic_addition.rb
|
295
202
|
homepage: http://www.ohler.com/oj
|
296
203
|
licenses:
|
297
204
|
- MIT
|
@@ -303,7 +210,6 @@ metadata:
|
|
303
210
|
source_code_uri: https://github.com/ohler55/oj
|
304
211
|
wiki_uri: https://github.com/ohler55/oj/wiki
|
305
212
|
rubygems_mfa_required: 'true'
|
306
|
-
post_install_message:
|
307
213
|
rdoc_options:
|
308
214
|
- "--title"
|
309
215
|
- Oj
|
@@ -322,8 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
322
228
|
- !ruby/object:Gem::Version
|
323
229
|
version: '0'
|
324
230
|
requirements: []
|
325
|
-
rubygems_version: 3.
|
326
|
-
signing_key:
|
231
|
+
rubygems_version: 3.6.2
|
327
232
|
specification_version: 4
|
328
233
|
summary: A fast JSON parser and serializer.
|
329
234
|
test_files: []
|
data/test/_test_active.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
$LOAD_PATH << __dir__
|
5
|
-
%w(lib ext test).each do |dir|
|
6
|
-
$LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
|
7
|
-
end
|
8
|
-
|
9
|
-
require 'minitest'
|
10
|
-
require 'minitest/autorun'
|
11
|
-
|
12
|
-
require 'sqlite3'
|
13
|
-
require 'active_record'
|
14
|
-
require 'oj'
|
15
|
-
|
16
|
-
# Oj.mimic_JSON()
|
17
|
-
Oj.default_options = {mode: :compat, indent: 2}
|
18
|
-
|
19
|
-
# ActiveRecord::Base.logger = Logger.new(STDERR)
|
20
|
-
|
21
|
-
ActiveRecord::Base.establish_connection(
|
22
|
-
:adapter => 'sqlite3',
|
23
|
-
:database => ':memory:'
|
24
|
-
)
|
25
|
-
|
26
|
-
ActiveRecord::Schema.define do
|
27
|
-
create_table :users do |table|
|
28
|
-
table.column :first_name, :string
|
29
|
-
table.column :last_name, :string
|
30
|
-
table.column :email, :string
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class User < ActiveRecord::Base
|
35
|
-
end
|
36
|
-
|
37
|
-
class ActiveTest < Minitest::Test
|
38
|
-
|
39
|
-
def test_active
|
40
|
-
User.find_or_create_by(first_name: 'John', last_name: 'Smith', email: 'john@example.com')
|
41
|
-
User.find_or_create_by(first_name: 'Joan', last_name: 'Smith', email: 'joan@example.com')
|
42
|
-
|
43
|
-
# Single instance.
|
44
|
-
assert_equal(%|{
|
45
|
-
"id":1,
|
46
|
-
"first_name":"John",
|
47
|
-
"last_name":"Smith",
|
48
|
-
"email":"john@example.com"
|
49
|
-
}
|
50
|
-
|, Oj.dump(User.first))
|
51
|
-
|
52
|
-
# Array of instances.
|
53
|
-
assert_equal(%|[
|
54
|
-
{
|
55
|
-
"id":1,
|
56
|
-
"first_name":"John",
|
57
|
-
"last_name":"Smith",
|
58
|
-
"email":"john@example.com"
|
59
|
-
},
|
60
|
-
{
|
61
|
-
"id":2,
|
62
|
-
"first_name":"Joan",
|
63
|
-
"last_name":"Smith",
|
64
|
-
"email":"joan@example.com"
|
65
|
-
}
|
66
|
-
]
|
67
|
-
|, Oj.dump(User.all))
|
68
|
-
|
69
|
-
# Single instance as json. (not Oj)
|
70
|
-
assert_equal(%|{"id":1,"first_name":"John","last_name":"Smith","email":"john@example.com"}|, User.first.to_json)
|
71
|
-
|
72
|
-
# Array of instances as json. (not Oj)
|
73
|
-
assert_equal(%|[{"id":1,"first_name":"John","last_name":"Smith","email":"john@example.com"},{"id":2,"first_name":"Joan","last_name":"Smith","email":"joan@example.com"}]|, User.all.to_json)
|
74
|
-
end
|
75
|
-
end
|
data/test/_test_active_mimic.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
$LOAD_PATH << __dir__
|
5
|
-
%w(lib ext test).each do |dir|
|
6
|
-
$LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
|
7
|
-
end
|
8
|
-
|
9
|
-
require 'minitest'
|
10
|
-
require 'minitest/autorun'
|
11
|
-
|
12
|
-
require 'sqlite3'
|
13
|
-
require 'active_record'
|
14
|
-
require 'oj'
|
15
|
-
|
16
|
-
Oj.mimic_JSON()
|
17
|
-
Oj.default_options = {mode: :compat, indent: 2}
|
18
|
-
|
19
|
-
# ActiveRecord::Base.logger = Logger.new(STDERR)
|
20
|
-
|
21
|
-
ActiveRecord::Base.establish_connection(
|
22
|
-
:adapter => 'sqlite3',
|
23
|
-
:database => ':memory:'
|
24
|
-
)
|
25
|
-
|
26
|
-
ActiveRecord::Schema.define do
|
27
|
-
create_table :users do |table|
|
28
|
-
table.column :first_name, :string
|
29
|
-
table.column :last_name, :string
|
30
|
-
table.column :email, :string
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class User < ActiveRecord::Base
|
35
|
-
end
|
36
|
-
|
37
|
-
class ActiveTest < Minitest::Test
|
38
|
-
|
39
|
-
def test_active
|
40
|
-
User.find_or_create_by(first_name: 'John', last_name: 'Smith', email: 'john@example.com')
|
41
|
-
User.find_or_create_by(first_name: 'Joan', last_name: 'Smith', email: 'joan@example.com')
|
42
|
-
|
43
|
-
# Single instance.
|
44
|
-
assert_equal(%|{
|
45
|
-
"id":1,
|
46
|
-
"first_name":"John",
|
47
|
-
"last_name":"Smith",
|
48
|
-
"email":"john@example.com"
|
49
|
-
}
|
50
|
-
|, Oj.dump(User.first))
|
51
|
-
|
52
|
-
# Array of instances.
|
53
|
-
assert_equal(%|[
|
54
|
-
{
|
55
|
-
"id":1,
|
56
|
-
"first_name":"John",
|
57
|
-
"last_name":"Smith",
|
58
|
-
"email":"john@example.com"
|
59
|
-
},
|
60
|
-
{
|
61
|
-
"id":2,
|
62
|
-
"first_name":"Joan",
|
63
|
-
"last_name":"Smith",
|
64
|
-
"email":"joan@example.com"
|
65
|
-
}
|
66
|
-
]
|
67
|
-
|, Oj.dump(User.all))
|
68
|
-
|
69
|
-
# Single instance as json. (not Oj)
|
70
|
-
assert_equal(%|{
|
71
|
-
"id":1,
|
72
|
-
"first_name":"John",
|
73
|
-
"last_name":"Smith",
|
74
|
-
"email":"john@example.com"
|
75
|
-
}
|
76
|
-
|, User.first.to_json)
|
77
|
-
|
78
|
-
# Array of instances as json. (not Oj)
|
79
|
-
assert_equal(%|[
|
80
|
-
{
|
81
|
-
"id":1,
|
82
|
-
"first_name":"John",
|
83
|
-
"last_name":"Smith",
|
84
|
-
"email":"john@example.com"
|
85
|
-
},
|
86
|
-
{
|
87
|
-
"id":2,
|
88
|
-
"first_name":"Joan",
|
89
|
-
"last_name":"Smith",
|
90
|
-
"email":"joan@example.com"
|
91
|
-
}
|
92
|
-
]
|
93
|
-
|, User.all.to_json)
|
94
|
-
end
|
95
|
-
end
|