oj 3.3.10 → 3.4.0
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/ext/oj/custom.c +6 -0
- data/ext/oj/dump.c +15 -0
- data/ext/oj/dump.h +2 -0
- data/ext/oj/dump_object.c +16 -0
- data/ext/oj/oj.c +37 -2
- data/ext/oj/oj.h +1 -0
- data/lib/oj/version.rb +1 -1
- data/pages/Modes.md +1 -0
- data/pages/Options.md +5 -0
- data/test/test_object.rb +10 -1
- data/test/test_various.rb +2 -1
- metadata +68 -70
- data/test/bug.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9badf52195a57cbb014c118468e251a6410492be
|
4
|
+
data.tar.gz: 8cf51afa4ee58bbb314625d6b4e4c91c69c1f816
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3366cc54755af4f3d8abbded2afac3b1235a4fe25315964d6d1225c69e849611eecedb2e7d893e14b72514bcc0115b1a2cce94bc007f0e8460230798d1531276
|
7
|
+
data.tar.gz: 02d082acfd67708b44582a8fe69e10a5f639cc56ec57484c56c283be96ffc4d64b0a41b4c31bac2f707225388b2f5cd2551c9e6aba048c4c973e6c6461a462a8
|
data/ext/oj/custom.c
CHANGED
@@ -244,6 +244,9 @@ static int
|
|
244
244
|
hash_cb(VALUE key, VALUE value, Out out) {
|
245
245
|
int depth = out->depth;
|
246
246
|
|
247
|
+
if (oj_dump_ignore(out->opts, value)) {
|
248
|
+
return ST_CONTINUE;
|
249
|
+
}
|
247
250
|
if (out->omit_nil && Qnil == value) {
|
248
251
|
return ST_CONTINUE;
|
249
252
|
}
|
@@ -529,6 +532,9 @@ dump_attr_cb(ID key, VALUE value, Out out) {
|
|
529
532
|
size_t size;
|
530
533
|
const char *attr;
|
531
534
|
|
535
|
+
if (oj_dump_ignore(out->opts, value)) {
|
536
|
+
return ST_CONTINUE;
|
537
|
+
}
|
532
538
|
if (out->omit_nil && Qnil == value) {
|
533
539
|
return ST_CONTINUE;
|
534
540
|
}
|
data/ext/oj/dump.c
CHANGED
@@ -1143,3 +1143,18 @@ oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *fo
|
|
1143
1143
|
}
|
1144
1144
|
return cnt;
|
1145
1145
|
}
|
1146
|
+
|
1147
|
+
bool
|
1148
|
+
oj_dump_ignore(Options opts, VALUE obj) {
|
1149
|
+
if (NULL != opts->ignore && (ObjectMode == opts->mode || CustomMode == opts->mode)) {
|
1150
|
+
VALUE *vp = opts->ignore;
|
1151
|
+
VALUE clas = rb_obj_class(obj);
|
1152
|
+
|
1153
|
+
for (; Qnil != *vp; vp++) {
|
1154
|
+
if (clas == *vp) {
|
1155
|
+
return true;
|
1156
|
+
}
|
1157
|
+
}
|
1158
|
+
}
|
1159
|
+
return false;
|
1160
|
+
}
|
data/ext/oj/dump.h
CHANGED
@@ -50,6 +50,8 @@ extern VALUE oj_remove_to_json(int argc, VALUE *argv, VALUE self);
|
|
50
50
|
|
51
51
|
extern int oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *format);
|
52
52
|
|
53
|
+
extern bool oj_dump_ignore(Options opts, VALUE obj);
|
54
|
+
|
53
55
|
inline static void
|
54
56
|
assure_size(Out out, size_t len) {
|
55
57
|
if (out->end - out->cur <= (long)len) {
|
data/ext/oj/dump_object.c
CHANGED
@@ -227,6 +227,9 @@ hash_cb(VALUE key, VALUE value, Out out) {
|
|
227
227
|
int depth = out->depth;
|
228
228
|
long size = depth * out->indent + 1;
|
229
229
|
|
230
|
+
if (oj_dump_ignore(out->opts, value)) {
|
231
|
+
return ST_CONTINUE;
|
232
|
+
}
|
230
233
|
if (out->omit_nil && Qnil == value) {
|
231
234
|
return ST_CONTINUE;
|
232
235
|
}
|
@@ -349,6 +352,9 @@ dump_attr_cb(ID key, VALUE value, Out out) {
|
|
349
352
|
size_t size = depth * out->indent + 1;
|
350
353
|
const char *attr = rb_id2name(key);
|
351
354
|
|
355
|
+
if (oj_dump_ignore(out->opts, value)) {
|
356
|
+
return ST_CONTINUE;
|
357
|
+
}
|
352
358
|
if (out->omit_nil && Qnil == value) {
|
353
359
|
return ST_CONTINUE;
|
354
360
|
}
|
@@ -607,6 +613,10 @@ dump_obj_attrs(VALUE obj, VALUE clas, slot_t id, int depth, Out out) {
|
|
607
613
|
vid = rb_to_id(*np);
|
608
614
|
attr = rb_id2name(vid);
|
609
615
|
value = rb_ivar_get(obj, vid);
|
616
|
+
|
617
|
+
if (oj_dump_ignore(out->opts, value)) {
|
618
|
+
continue;
|
619
|
+
}
|
610
620
|
if (out->omit_nil && Qnil == value) {
|
611
621
|
continue;
|
612
622
|
}
|
@@ -735,6 +745,9 @@ dump_struct(VALUE obj, int depth, Out out, bool as_ok) {
|
|
735
745
|
|
736
746
|
for (i = 0; i < cnt; i++) {
|
737
747
|
v = RSTRUCT_GET(obj, i);
|
748
|
+
if (oj_dump_ignore(out->opts, v)) {
|
749
|
+
v = Qnil;
|
750
|
+
}
|
738
751
|
assure_size(out, size);
|
739
752
|
fill_indent(out, d3);
|
740
753
|
oj_dump_obj_val(v, d3, out);
|
@@ -750,6 +763,9 @@ dump_struct(VALUE obj, int depth, Out out, bool as_ok) {
|
|
750
763
|
for (i = 0; i < slen; i++) {
|
751
764
|
assure_size(out, size);
|
752
765
|
fill_indent(out, d3);
|
766
|
+
if (oj_dump_ignore(out->opts, v)) {
|
767
|
+
v = Qnil;
|
768
|
+
}
|
753
769
|
oj_dump_obj_val(rb_struct_aref(obj, INT2FIX(i)), d3, out, 0, 0, true);
|
754
770
|
*out->cur++ = ',';
|
755
771
|
}
|
data/ext/oj/oj.c
CHANGED
@@ -118,6 +118,7 @@ static VALUE escape_mode_sym;
|
|
118
118
|
static VALUE float_prec_sym;
|
119
119
|
static VALUE float_sym;
|
120
120
|
static VALUE huge_sym;
|
121
|
+
static VALUE ignore_sym;
|
121
122
|
static VALUE json_sym;
|
122
123
|
static VALUE match_string_sym;
|
123
124
|
static VALUE mode_sym;
|
@@ -207,7 +208,8 @@ struct _Options oj_default_options = {
|
|
207
208
|
NULL, // head
|
208
209
|
NULL, // tail
|
209
210
|
{ '\0' }, // err
|
210
|
-
}
|
211
|
+
},
|
212
|
+
NULL, // ignore
|
211
213
|
};
|
212
214
|
|
213
215
|
/* Document-method: default_options()
|
@@ -244,6 +246,7 @@ struct _Options oj_default_options = {
|
|
244
246
|
* - *:hash_class* [_Class_|_nil_] Class to use instead of Hash on load, :object_class can also be used
|
245
247
|
* - *:array_class* [_Class_|_nil_] Class to use instead of Array on load
|
246
248
|
* - *:omit_nil* [_true_|_false_] if true Hash and Object attributes with nil values are omitted
|
249
|
+
* - *:ignore* [_nil_|Array] either nil or an Array of classes to ignore when dumping
|
247
250
|
*
|
248
251
|
* Return [_Hash_] all current option settings.
|
249
252
|
*/
|
@@ -320,7 +323,18 @@ get_def_opts(VALUE self) {
|
|
320
323
|
rb_hash_aset(opts, omit_nil_sym, oj_default_options.dump_opts.omit_nil ? Qtrue : Qfalse);
|
321
324
|
rb_hash_aset(opts, oj_hash_class_sym, oj_default_options.hash_class);
|
322
325
|
rb_hash_aset(opts, oj_array_class_sym, oj_default_options.array_class);
|
323
|
-
|
326
|
+
|
327
|
+
if (NULL == oj_default_options.ignore) {
|
328
|
+
rb_hash_aset(opts, ignore_sym, Qnil);
|
329
|
+
} else {
|
330
|
+
VALUE *vp;
|
331
|
+
volatile VALUE a = rb_ary_new();
|
332
|
+
|
333
|
+
for (vp = oj_default_options.ignore; Qnil != *vp; vp++) {
|
334
|
+
rb_ary_push(a, *vp);
|
335
|
+
}
|
336
|
+
rb_hash_aset(opts, ignore_sym, a);
|
337
|
+
}
|
324
338
|
return opts;
|
325
339
|
}
|
326
340
|
|
@@ -358,6 +372,7 @@ get_def_opts(VALUE self) {
|
|
358
372
|
* - *:hash_class* [_Class_|_nil_] Class to use instead of Hash on load, :object_class can also be used.
|
359
373
|
* - *:array_class* [_Class_|_nil_] Class to use instead of Array on load.
|
360
374
|
* - *:omit_nil* [_true_|_false_] if true Hash and Object attributes with nil values are omitted.
|
375
|
+
* - *:ignore* [_nil_|Array] either nil or an Array of classes to ignore when dumping
|
361
376
|
*/
|
362
377
|
static VALUE
|
363
378
|
set_def_opts(VALUE self, VALUE opts) {
|
@@ -672,6 +687,25 @@ oj_parse_options(VALUE ropts, Options copts) {
|
|
672
687
|
}
|
673
688
|
}
|
674
689
|
oj_parse_opt_match_string(&copts->str_rx, ropts);
|
690
|
+
if (Qtrue == rb_funcall(ropts, oj_has_key_id, 1, ignore_sym)) {
|
691
|
+
xfree(copts->ignore);
|
692
|
+
copts->ignore = NULL;
|
693
|
+
if (Qnil != (v = rb_hash_lookup(ropts, ignore_sym))) {
|
694
|
+
int cnt;
|
695
|
+
|
696
|
+
rb_check_type(v, T_ARRAY);
|
697
|
+
cnt = (int)RARRAY_LEN(v);
|
698
|
+
if (0 < cnt) {
|
699
|
+
int i;
|
700
|
+
|
701
|
+
copts->ignore = ALLOC_N(VALUE, cnt + 1);
|
702
|
+
for (i = 0; i < cnt; i++) {
|
703
|
+
copts->ignore[i] = rb_ary_entry(v, i);
|
704
|
+
}
|
705
|
+
copts->ignore[i] = Qnil;
|
706
|
+
}
|
707
|
+
}
|
708
|
+
}
|
675
709
|
}
|
676
710
|
|
677
711
|
static int
|
@@ -1604,6 +1638,7 @@ Init_oj() {
|
|
1604
1638
|
float_prec_sym = ID2SYM(rb_intern("float_precision")); rb_gc_register_address(&float_prec_sym);
|
1605
1639
|
float_sym = ID2SYM(rb_intern("float")); rb_gc_register_address(&float_sym);
|
1606
1640
|
huge_sym = ID2SYM(rb_intern("huge")); rb_gc_register_address(&huge_sym);
|
1641
|
+
ignore_sym = ID2SYM(rb_intern("ignore")); rb_gc_register_address(&ignore_sym);
|
1607
1642
|
json_sym = ID2SYM(rb_intern("json")); rb_gc_register_address(&json_sym);
|
1608
1643
|
match_string_sym = ID2SYM(rb_intern("match_string")); rb_gc_register_address(&match_string_sym);
|
1609
1644
|
mode_sym = ID2SYM(rb_intern("mode")); rb_gc_register_address(&mode_sym);
|
data/ext/oj/oj.h
CHANGED
data/lib/oj/version.rb
CHANGED
data/pages/Modes.md
CHANGED
@@ -104,6 +104,7 @@ information.
|
|
104
104
|
| :escape_mode | Symbol | | | | | | x | |
|
105
105
|
| :float_precision | Fixnum | x | x | | | | x | |
|
106
106
|
| :hash_class | Class | | | x | x | | x | |
|
107
|
+
| :ignore | Array | | | | | x | x | |
|
107
108
|
| :indent | Integer | x | x | 3 | 4 | x | x | x |
|
108
109
|
| :indent_str | String | | | x | x | | x | |
|
109
110
|
| :match_string | Hash | | | x | x | | x | |
|
data/pages/Options.md
CHANGED
@@ -130,6 +130,11 @@ The number of digits of precision when dumping floats, 0 indicates use Ruby dire
|
|
130
130
|
|
131
131
|
Class to use instead of Hash on load. This is the same as the :object_class.
|
132
132
|
|
133
|
+
### :ignore [Array]
|
134
|
+
|
135
|
+
Ignore all the classes in the Array when dumping. A value of nil indicates
|
136
|
+
ignore nothing.
|
137
|
+
|
133
138
|
### :indent [Fixnum]
|
134
139
|
|
135
140
|
Number of spaces to indent each element in a JSON document, zero is no newline
|
data/test/test_object.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding:
|
2
|
+
# encoding: utf-8
|
3
3
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
|
@@ -761,6 +761,15 @@ class ObjectJuice < Minitest::Test
|
|
761
761
|
assert_equal(obj, obj2)
|
762
762
|
end
|
763
763
|
|
764
|
+
def test_ignore
|
765
|
+
obj = Jeez.new(true, 58)
|
766
|
+
json = Oj.dump({ 'a' => 7, 'b' => obj }, :mode => :object, :indent => 2, :ignore => [ Jeez ])
|
767
|
+
assert_equal(%|{
|
768
|
+
"a":7
|
769
|
+
}
|
770
|
+
|, json)
|
771
|
+
end
|
772
|
+
|
764
773
|
def test_exception
|
765
774
|
err = nil
|
766
775
|
begin
|
data/test/test_various.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding:
|
2
|
+
# encoding: utf-8
|
3
3
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
|
@@ -154,6 +154,7 @@ class Juice < Minitest::Test
|
|
154
154
|
:omit_nil=>false,
|
155
155
|
:allow_nan=>true,
|
156
156
|
:array_class=>Array,
|
157
|
+
:ignore=>nil,
|
157
158
|
}
|
158
159
|
Oj.default_options = alt
|
159
160
|
#keys = alt.keys
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Ohler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -80,15 +80,15 @@ extensions:
|
|
80
80
|
extra_rdoc_files:
|
81
81
|
- README.md
|
82
82
|
- pages/Advanced.md
|
83
|
-
- pages/
|
84
|
-
- pages/Custom.md
|
83
|
+
- pages/WAB.md
|
85
84
|
- pages/Encoding.md
|
86
|
-
- pages/JsonGem.md
|
87
85
|
- pages/Modes.md
|
88
|
-
- pages/Options.md
|
89
|
-
- pages/Rails.md
|
90
86
|
- pages/Security.md
|
91
|
-
- pages/
|
87
|
+
- pages/JsonGem.md
|
88
|
+
- pages/Rails.md
|
89
|
+
- pages/Compatibility.md
|
90
|
+
- pages/Custom.md
|
91
|
+
- pages/Options.md
|
92
92
|
files:
|
93
93
|
- LICENSE
|
94
94
|
- README.md
|
@@ -172,7 +172,6 @@ files:
|
|
172
172
|
- test/activesupport5/encoding_test_cases.rb
|
173
173
|
- test/activesupport5/test_helper.rb
|
174
174
|
- test/activesupport5/time_zone_test_helpers.rb
|
175
|
-
- test/bug.rb
|
176
175
|
- test/files.rb
|
177
176
|
- test/helper.rb
|
178
177
|
- test/isolated/shared.rb
|
@@ -265,78 +264,77 @@ signing_key:
|
|
265
264
|
specification_version: 4
|
266
265
|
summary: A fast JSON parser and serializer.
|
267
266
|
test_files:
|
268
|
-
- test/_test_active.rb
|
269
|
-
- test/_test_active_mimic.rb
|
270
|
-
- test/_test_mimic_rails.rb
|
271
|
-
- test/activesupport4/decoding_test.rb
|
272
|
-
- test/activesupport4/encoding_test.rb
|
273
|
-
- test/activesupport4/test_helper.rb
|
274
|
-
- test/activesupport5/decoding_test.rb
|
275
|
-
- test/activesupport5/encoding_test.rb
|
276
|
-
- test/activesupport5/encoding_test_cases.rb
|
277
267
|
- test/activesupport5/test_helper.rb
|
278
268
|
- test/activesupport5/time_zone_test_helpers.rb
|
279
|
-
- test/
|
269
|
+
- test/activesupport5/decoding_test.rb
|
270
|
+
- test/activesupport5/encoding_test_cases.rb
|
271
|
+
- test/activesupport5/encoding_test.rb
|
272
|
+
- test/test_file.rb
|
280
273
|
- test/files.rb
|
281
|
-
- test/helper.rb
|
282
|
-
- test/isolated/shared.rb
|
283
|
-
- test/isolated/test_mimic_after.rb
|
284
|
-
- test/isolated/test_mimic_alone.rb
|
285
|
-
- test/isolated/test_mimic_as_json.rb
|
286
|
-
- test/isolated/test_mimic_before.rb
|
287
|
-
- test/isolated/test_mimic_define.rb
|
288
|
-
- test/isolated/test_mimic_rails_after.rb
|
289
|
-
- test/isolated/test_mimic_rails_before.rb
|
290
|
-
- test/isolated/test_mimic_redefine.rb
|
291
|
-
- test/json_gem/json_addition_test.rb
|
292
|
-
- test/json_gem/json_common_interface_test.rb
|
293
|
-
- test/json_gem/json_encoding_test.rb
|
294
|
-
- test/json_gem/json_ext_parser_test.rb
|
295
|
-
- test/json_gem/json_fixtures_test.rb
|
296
|
-
- test/json_gem/json_generator_test.rb
|
297
|
-
- test/json_gem/json_generic_object_test.rb
|
298
|
-
- test/json_gem/json_parser_test.rb
|
299
|
-
- test/json_gem/json_string_matching_test.rb
|
300
|
-
- test/json_gem/test_helper.rb
|
301
|
-
- test/perf.rb
|
302
|
-
- test/perf_compat.rb
|
303
|
-
- test/perf_fast.rb
|
304
|
-
- test/perf_file.rb
|
305
|
-
- test/perf_object.rb
|
306
|
-
- test/perf_saj.rb
|
307
274
|
- test/perf_scp.rb
|
308
|
-
- test/
|
309
|
-
- test/
|
310
|
-
- test/
|
311
|
-
- test/
|
312
|
-
- test/
|
313
|
-
- test/sample/doc.rb
|
275
|
+
- test/test_debian.rb
|
276
|
+
- test/test_gc.rb
|
277
|
+
- test/_test_mimic_rails.rb
|
278
|
+
- test/test_writer.rb
|
279
|
+
- test/test_hash.rb
|
314
280
|
- test/sample/file.rb
|
315
|
-
- test/sample/group.rb
|
316
281
|
- test/sample/hasprops.rb
|
317
282
|
- test/sample/layer.rb
|
318
|
-
- test/sample/
|
283
|
+
- test/sample/change.rb
|
284
|
+
- test/sample/doc.rb
|
319
285
|
- test/sample/oval.rb
|
320
|
-
- test/sample/rect.rb
|
321
286
|
- test/sample/shape.rb
|
322
287
|
- test/sample/text.rb
|
323
|
-
- test/sample.rb
|
324
|
-
- test/
|
325
|
-
- test/
|
326
|
-
- test/
|
327
|
-
- test/
|
328
|
-
- test/test_fast.rb
|
329
|
-
- test/test_file.rb
|
330
|
-
- test/test_gc.rb
|
331
|
-
- test/test_hash.rb
|
332
|
-
- test/test_null.rb
|
288
|
+
- test/sample/group.rb
|
289
|
+
- test/sample/dir.rb
|
290
|
+
- test/sample/line.rb
|
291
|
+
- test/sample/rect.rb
|
292
|
+
- test/tests.rb
|
333
293
|
- test/test_object.rb
|
294
|
+
- test/perf_wab.rb
|
295
|
+
- test/tests_mimic.rb
|
296
|
+
- test/perf_saj.rb
|
297
|
+
- test/tests_mimic_addition.rb
|
334
298
|
- test/test_saj.rb
|
299
|
+
- test/sample.rb
|
335
300
|
- test/test_scp.rb
|
336
|
-
- test/
|
337
|
-
- test/
|
301
|
+
- test/perf_object.rb
|
302
|
+
- test/perf_simple.rb
|
303
|
+
- test/test_null.rb
|
304
|
+
- test/_test_active_mimic.rb
|
305
|
+
- test/_test_active.rb
|
306
|
+
- test/test_compat.rb
|
307
|
+
- test/sample_json.rb
|
308
|
+
- test/json_gem/test_helper.rb
|
309
|
+
- test/json_gem/json_generic_object_test.rb
|
310
|
+
- test/json_gem/json_common_interface_test.rb
|
311
|
+
- test/json_gem/json_string_matching_test.rb
|
312
|
+
- test/json_gem/json_addition_test.rb
|
313
|
+
- test/json_gem/json_fixtures_test.rb
|
314
|
+
- test/json_gem/json_generator_test.rb
|
315
|
+
- test/json_gem/json_ext_parser_test.rb
|
316
|
+
- test/json_gem/json_parser_test.rb
|
317
|
+
- test/json_gem/json_encoding_test.rb
|
318
|
+
- test/helper.rb
|
319
|
+
- test/activesupport4/test_helper.rb
|
320
|
+
- test/activesupport4/decoding_test.rb
|
321
|
+
- test/activesupport4/encoding_test.rb
|
338
322
|
- test/test_wab.rb
|
339
|
-
- test/
|
340
|
-
- test/
|
341
|
-
- test/
|
342
|
-
- test/
|
323
|
+
- test/perf_file.rb
|
324
|
+
- test/perf_compat.rb
|
325
|
+
- test/test_various.rb
|
326
|
+
- test/test_strict.rb
|
327
|
+
- test/test_custom.rb
|
328
|
+
- test/perf_strict.rb
|
329
|
+
- test/perf_fast.rb
|
330
|
+
- test/isolated/test_mimic_alone.rb
|
331
|
+
- test/isolated/test_mimic_after.rb
|
332
|
+
- test/isolated/test_mimic_as_json.rb
|
333
|
+
- test/isolated/test_mimic_rails_after.rb
|
334
|
+
- test/isolated/test_mimic_before.rb
|
335
|
+
- test/isolated/test_mimic_rails_before.rb
|
336
|
+
- test/isolated/test_mimic_define.rb
|
337
|
+
- test/isolated/shared.rb
|
338
|
+
- test/isolated/test_mimic_redefine.rb
|
339
|
+
- test/perf.rb
|
340
|
+
- test/test_fast.rb
|
data/test/bug.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: UTF-8
|
3
|
-
|
4
|
-
%w(lib ext test).each do |dir|
|
5
|
-
$LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
|
6
|
-
end
|
7
|
-
|
8
|
-
require 'rails'
|
9
|
-
require 'active_support'
|
10
|
-
require 'active_support/json'
|
11
|
-
require 'oj'
|
12
|
-
|
13
|
-
x = {"a": BigDecimal("1.1"), "t": Time.now}
|
14
|
-
|
15
|
-
#ActiveSupport.encode_big_decimal_as_string = false
|
16
|
-
|
17
|
-
Oj.optimize_rails
|
18
|
-
|
19
|
-
puts "to_json #{x.to_json}"
|
20
|
-
|
21
|
-
Oj.default_options = { bigdecimal_as_decimal: true}
|
22
|
-
#puts Oj.default_options
|
23
|
-
|
24
|
-
puts "to_json #{x.to_json}"
|
25
|
-
|