oj 3.0.11 → 3.1.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/mimic_json.c +49 -43
- data/ext/oj/rails.c +25 -0
- data/lib/oj/version.rb +1 -1
- data/pages/Rails.md +1 -0
- data/test/activesupport5/encoding_test.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 921337fe55a2f80cc6537cb652c5d54a98dd39d3
|
4
|
+
data.tar.gz: acdf0cc3bdaed92fd5ecb0a7239cfcf88873c59b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d51c9c25369ca4c5d9b7cd5670e1d4d87ce3458b9e8760d1d893c37f48f4775b145f9fad1b2aba78ba5a157981d7cda854e3c091dd9cf4256f1c9bb096699bd8
|
7
|
+
data.tar.gz: bdc8810b381c0a6f822432443ba201a2ed37aa30c8fe3f2e2ce00c446cae53a4cfdd90cb796e29cb2bcf60e34c62b607cdd90bf8bbc7b1ca773ba840caed5899
|
data/ext/oj/mimic_json.c
CHANGED
@@ -750,6 +750,54 @@ mimic_state(VALUE self) {
|
|
750
750
|
return state_class;
|
751
751
|
}
|
752
752
|
|
753
|
+
void
|
754
|
+
oj_mimic_json_methods(VALUE json) {
|
755
|
+
VALUE json_error;
|
756
|
+
|
757
|
+
rb_define_module_function(json, "create_id=", mimic_set_create_id, 1);
|
758
|
+
rb_define_module_function(json, "create_id", mimic_create_id, 0);
|
759
|
+
|
760
|
+
rb_define_module_function(json, "dump", mimic_dump, -1);
|
761
|
+
rb_define_module_function(json, "load", mimic_load, -1);
|
762
|
+
rb_define_module_function(json, "restore", mimic_load, -1);
|
763
|
+
rb_define_module_function(json, "recurse_proc", mimic_recurse_proc, 1);
|
764
|
+
rb_define_module_function(json, "[]", mimic_dump_load, -1);
|
765
|
+
|
766
|
+
rb_define_module_function(json, "generate", oj_mimic_generate, -1);
|
767
|
+
rb_define_module_function(json, "fast_generate", oj_mimic_generate, -1);
|
768
|
+
rb_define_module_function(json, "pretty_generate", oj_mimic_pretty_generate, -1);
|
769
|
+
// For older versions of JSON, the deprecated unparse methods.
|
770
|
+
rb_define_module_function(json, "unparse", oj_mimic_generate, -1);
|
771
|
+
rb_define_module_function(json, "fast_unparse", oj_mimic_generate, -1);
|
772
|
+
rb_define_module_function(json, "pretty_unparse", oj_mimic_pretty_generate, -1);
|
773
|
+
|
774
|
+
rb_define_module_function(json, "parse", oj_mimic_parse, -1);
|
775
|
+
rb_define_module_function(json, "parse!", mimic_parse_bang, -1);
|
776
|
+
|
777
|
+
rb_define_module_function(json, "state", mimic_state, 0);
|
778
|
+
|
779
|
+
if (rb_const_defined_at(json, rb_intern("JSONError"))) {
|
780
|
+
json_error = rb_const_get(json, rb_intern("JSONError"));
|
781
|
+
} else {
|
782
|
+
json_error = rb_define_class_under(json, "JSONError", rb_eStandardError);
|
783
|
+
}
|
784
|
+
if (rb_const_defined_at(json, rb_intern("ParserError"))) {
|
785
|
+
oj_json_parser_error_class = rb_const_get(json, rb_intern("ParserError"));
|
786
|
+
} else {
|
787
|
+
oj_json_parser_error_class = rb_define_class_under(json, "ParserError", json_error);
|
788
|
+
}
|
789
|
+
if (rb_const_defined_at(json, rb_intern("GeneratorError"))) {
|
790
|
+
oj_json_generator_error_class = rb_const_get(json, rb_intern("GeneratorError"));
|
791
|
+
} else {
|
792
|
+
oj_json_generator_error_class = rb_define_class_under(json, "GeneratorError", json_error);
|
793
|
+
}
|
794
|
+
if (rb_const_defined_at(json, rb_intern("NestingError"))) {
|
795
|
+
rb_const_get(json, rb_intern("NestingError"));
|
796
|
+
} else {
|
797
|
+
rb_define_class_under(json, "NestingError", json_error);
|
798
|
+
}
|
799
|
+
}
|
800
|
+
|
753
801
|
/* Document-module: JSON
|
754
802
|
*
|
755
803
|
* A mimic of the json gem module.
|
@@ -759,7 +807,6 @@ oj_define_mimic_json(int argc, VALUE *argv, VALUE self) {
|
|
759
807
|
VALUE ext;
|
760
808
|
VALUE dummy;
|
761
809
|
VALUE verbose;
|
762
|
-
VALUE json_error;
|
763
810
|
VALUE json;
|
764
811
|
VALUE generator;
|
765
812
|
|
@@ -804,27 +851,7 @@ oj_define_mimic_json(int argc, VALUE *argv, VALUE self) {
|
|
804
851
|
state_class = rb_const_get_at(generator, rb_intern("State"));
|
805
852
|
// TBD create all modules in mimic_loaded
|
806
853
|
|
807
|
-
|
808
|
-
rb_define_module_function(json, "create_id", mimic_create_id, 0);
|
809
|
-
|
810
|
-
rb_define_module_function(json, "dump", mimic_dump, -1);
|
811
|
-
rb_define_module_function(json, "load", mimic_load, -1);
|
812
|
-
rb_define_module_function(json, "restore", mimic_load, -1);
|
813
|
-
rb_define_module_function(json, "recurse_proc", mimic_recurse_proc, 1);
|
814
|
-
rb_define_module_function(json, "[]", mimic_dump_load, -1);
|
815
|
-
|
816
|
-
rb_define_module_function(json, "generate", oj_mimic_generate, -1);
|
817
|
-
rb_define_module_function(json, "fast_generate", oj_mimic_generate, -1);
|
818
|
-
rb_define_module_function(json, "pretty_generate", oj_mimic_pretty_generate, -1);
|
819
|
-
// For older versions of JSON, the deprecated unparse methods.
|
820
|
-
rb_define_module_function(json, "unparse", oj_mimic_generate, -1);
|
821
|
-
rb_define_module_function(json, "fast_unparse", oj_mimic_generate, -1);
|
822
|
-
rb_define_module_function(json, "pretty_unparse", oj_mimic_pretty_generate, -1);
|
823
|
-
|
824
|
-
rb_define_module_function(json, "parse", oj_mimic_parse, -1);
|
825
|
-
rb_define_module_function(json, "parse!", mimic_parse_bang, -1);
|
826
|
-
|
827
|
-
rb_define_module_function(json, "state", mimic_state, 0);
|
854
|
+
oj_mimic_json_methods(json);
|
828
855
|
|
829
856
|
rb_define_method(rb_cObject, "to_json", mimic_object_to_json, -1);
|
830
857
|
|
@@ -832,27 +859,6 @@ oj_define_mimic_json(int argc, VALUE *argv, VALUE self) {
|
|
832
859
|
|
833
860
|
symbolize_names_sym = ID2SYM(rb_intern("symbolize_names")); rb_gc_register_address(&symbolize_names_sym);
|
834
861
|
|
835
|
-
if (rb_const_defined_at(json, rb_intern("JSONError"))) {
|
836
|
-
json_error = rb_const_get(json, rb_intern("JSONError"));
|
837
|
-
} else {
|
838
|
-
json_error = rb_define_class_under(json, "JSONError", rb_eStandardError);
|
839
|
-
}
|
840
|
-
if (rb_const_defined_at(json, rb_intern("ParserError"))) {
|
841
|
-
oj_json_parser_error_class = rb_const_get(json, rb_intern("ParserError"));
|
842
|
-
} else {
|
843
|
-
oj_json_parser_error_class = rb_define_class_under(json, "ParserError", json_error);
|
844
|
-
}
|
845
|
-
if (rb_const_defined_at(json, rb_intern("GeneratorError"))) {
|
846
|
-
oj_json_generator_error_class = rb_const_get(json, rb_intern("GeneratorError"));
|
847
|
-
} else {
|
848
|
-
oj_json_generator_error_class = rb_define_class_under(json, "GeneratorError", json_error);
|
849
|
-
}
|
850
|
-
if (rb_const_defined_at(json, rb_intern("NestingError"))) {
|
851
|
-
rb_const_get(json, rb_intern("NestingError"));
|
852
|
-
} else {
|
853
|
-
rb_define_class_under(json, "NestingError", json_error);
|
854
|
-
}
|
855
|
-
|
856
862
|
oj_default_options = mimic_object_to_json_options;
|
857
863
|
oj_default_options.to_json = Yes;
|
858
864
|
|
data/ext/oj/rails.c
CHANGED
@@ -21,6 +21,8 @@ bool oj_rails_hash_opt = false;
|
|
21
21
|
bool oj_rails_array_opt = false;
|
22
22
|
bool oj_rails_float_opt = false;
|
23
23
|
|
24
|
+
extern void oj_mimic_json_methods(VALUE json);
|
25
|
+
|
24
26
|
static void dump_rails_val(VALUE obj, int depth, Out out, bool as_ok);
|
25
27
|
|
26
28
|
extern VALUE Oj;
|
@@ -537,6 +539,27 @@ rails_optimize(int argc, VALUE *argv, VALUE self) {
|
|
537
539
|
return Qnil;
|
538
540
|
}
|
539
541
|
|
542
|
+
/* Document-module: mimic_JSON
|
543
|
+
* call-seq: mimic_JSON()
|
544
|
+
*
|
545
|
+
* Sets the JSON method to use Oj similar to Oj.mimic_JSON except with the
|
546
|
+
* ActiveSupport monkey patches instead of the json gem monkey patches.
|
547
|
+
*/
|
548
|
+
VALUE
|
549
|
+
rails_mimic_json(VALUE self) {
|
550
|
+
VALUE json;
|
551
|
+
|
552
|
+
if (rb_const_defined_at(rb_cObject, rb_intern("JSON"))) {
|
553
|
+
json = rb_const_get_at(rb_cObject, rb_intern("JSON"));
|
554
|
+
} else {
|
555
|
+
json = rb_define_module("JSON");
|
556
|
+
}
|
557
|
+
oj_mimic_json_methods(json);
|
558
|
+
// TBD
|
559
|
+
|
560
|
+
return Qnil;
|
561
|
+
}
|
562
|
+
|
540
563
|
/* Document-method: deoptimize
|
541
564
|
* call-seq: deoptimize(*classes)
|
542
565
|
*
|
@@ -851,6 +874,7 @@ oj_optimize_rails(VALUE self) {
|
|
851
874
|
rails_set_encoder(self);
|
852
875
|
rails_set_decoder(self);
|
853
876
|
rails_optimize(0, NULL, self);
|
877
|
+
rails_mimic_json(self);
|
854
878
|
|
855
879
|
return Qnil;
|
856
880
|
}
|
@@ -874,6 +898,7 @@ oj_mimic_rails_init() {
|
|
874
898
|
rb_define_module_function(rails, "optimize", rails_optimize, -1);
|
875
899
|
rb_define_module_function(rails, "deoptimize", rails_deoptimize, -1);
|
876
900
|
rb_define_module_function(rails, "optimized?", rails_optimized, 1);
|
901
|
+
rb_define_module_function(rails, "mimic_JSON?", rails_mimic_json, 0);
|
877
902
|
|
878
903
|
rb_define_module_function(rails, "set_encoder", rails_set_encoder, 0);
|
879
904
|
rb_define_module_function(rails, "set_decoder", rails_set_decoder, 0);
|
data/lib/oj/version.rb
CHANGED
data/pages/Rails.md
CHANGED
@@ -11,7 +11,8 @@ require 'oj'
|
|
11
11
|
# Sets the ActiveSupport encoder to be Oj and also wraps the setting of
|
12
12
|
# globals.
|
13
13
|
Oj::Rails.set_encoder()
|
14
|
-
Oj::Rails.optimize(Hash, Array, BigDecimal, Time, Range, Regexp, ActiveSupport::TimeWithZone)
|
14
|
+
#Oj::Rails.optimize(Hash, Array, BigDecimal, Time, Range, Regexp, ActiveSupport::TimeWithZone)
|
15
|
+
Oj::Rails.optimize()
|
15
16
|
|
16
17
|
class TestJSONEncoding < ActiveSupport::TestCase
|
17
18
|
include TimeZoneTestHelpers
|
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.0
|
4
|
+
version: 3.1.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: 2017-06-
|
11
|
+
date: 2017-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|