json 1.8.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of json might be problematic. Click here for more details.

Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -10
  3. data/CHANGES +12 -0
  4. data/Gemfile +1 -2
  5. data/{README.rdoc → README.md} +145 -111
  6. data/Rakefile +26 -29
  7. data/VERSION +1 -1
  8. data/ext/json/ext/generator/generator.c +38 -55
  9. data/ext/json/ext/generator/generator.h +7 -1
  10. data/ext/json/ext/parser/extconf.rb +3 -0
  11. data/ext/json/ext/parser/parser.c +309 -439
  12. data/ext/json/ext/parser/parser.h +0 -1
  13. data/ext/json/ext/parser/parser.rl +67 -160
  14. data/ext/json/extconf.rb +0 -1
  15. data/java/src/json/ext/ByteListTranscoder.java +1 -2
  16. data/java/src/json/ext/Generator.java +11 -12
  17. data/java/src/json/ext/GeneratorMethods.java +1 -2
  18. data/java/src/json/ext/GeneratorService.java +1 -2
  19. data/java/src/json/ext/GeneratorState.java +3 -56
  20. data/java/src/json/ext/OptionsReader.java +2 -3
  21. data/java/src/json/ext/Parser.java +110 -411
  22. data/java/src/json/ext/Parser.rl +25 -119
  23. data/java/src/json/ext/ParserService.java +1 -2
  24. data/java/src/json/ext/RuntimeInfo.java +1 -6
  25. data/java/src/json/ext/StringDecoder.java +1 -2
  26. data/java/src/json/ext/StringEncoder.java +5 -0
  27. data/java/src/json/ext/Utils.java +1 -2
  28. data/json-java.gemspec +15 -0
  29. data/json.gemspec +0 -0
  30. data/json_pure.gemspec +23 -26
  31. data/lib/json/add/bigdecimal.rb +1 -0
  32. data/lib/json/add/complex.rb +2 -1
  33. data/lib/json/add/core.rb +1 -0
  34. data/lib/json/add/date.rb +1 -1
  35. data/lib/json/add/date_time.rb +1 -1
  36. data/lib/json/add/exception.rb +1 -1
  37. data/lib/json/add/ostruct.rb +1 -1
  38. data/lib/json/add/range.rb +1 -1
  39. data/lib/json/add/rational.rb +1 -0
  40. data/lib/json/add/regexp.rb +1 -1
  41. data/lib/json/add/struct.rb +1 -1
  42. data/lib/json/add/symbol.rb +1 -1
  43. data/lib/json/add/time.rb +1 -1
  44. data/lib/json/common.rb +24 -52
  45. data/lib/json/ext.rb +0 -6
  46. data/lib/json/generic_object.rb +5 -4
  47. data/lib/json/pure/generator.rb +61 -125
  48. data/lib/json/pure/parser.rb +28 -80
  49. data/lib/json/pure.rb +2 -8
  50. data/lib/json/version.rb +2 -1
  51. data/lib/json.rb +1 -0
  52. data/references/rfc7159.txt +899 -0
  53. data/tests/fixtures/obsolete_fail1.json +1 -0
  54. data/tests/{test_json_addition.rb → json_addition_test.rb} +22 -25
  55. data/tests/json_common_interface_test.rb +126 -0
  56. data/tests/json_encoding_test.rb +105 -0
  57. data/tests/json_ext_parser_test.rb +15 -0
  58. data/tests/{test_json_fixtures.rb → json_fixtures_test.rb} +5 -8
  59. data/tests/{test_json_generate.rb → json_generator_test.rb} +76 -37
  60. data/tests/{test_json_generic_object.rb → json_generic_object_test.rb} +15 -8
  61. data/tests/json_parser_test.rb +448 -0
  62. data/tests/json_string_matching_test.rb +38 -0
  63. data/tests/test_helper.rb +23 -0
  64. data/tools/diff.sh +18 -0
  65. data/tools/fuzz.rb +1 -9
  66. metadata +27 -42
  67. data/COPYING +0 -58
  68. data/COPYING-json-jruby +0 -57
  69. data/GPL +0 -340
  70. data/TODO +0 -1
  71. data/tests/fixtures/fail1.json +0 -1
  72. data/tests/setup_variant.rb +0 -11
  73. data/tests/test_json.rb +0 -553
  74. data/tests/test_json_encoding.rb +0 -65
  75. data/tests/test_json_string_matching.rb +0 -39
  76. data/tests/test_json_unicode.rb +0 -72
@@ -1,8 +1,7 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
3
  *
4
- * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
- * for details.
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
6
5
  */
7
6
  package json.ext;
8
7
 
@@ -51,10 +50,9 @@ public class Parser extends RubyObject {
51
50
  private int maxNesting;
52
51
  private boolean allowNaN;
53
52
  private boolean symbolizeNames;
54
- private boolean quirksMode;
55
53
  private RubyClass objectClass;
56
54
  private RubyClass arrayClass;
57
- private RubyHash match_string;
55
+ private RubyHash matchString;
58
56
 
59
57
  private static final int DEFAULT_MAX_NESTING = 100;
60
58
 
@@ -122,10 +120,6 @@ public class Parser extends RubyObject {
122
120
  * <dd>If set to <code>true</code>, returns symbols for the names (keys) in
123
121
  * a JSON object. Otherwise strings are returned, which is also the default.
124
122
  *
125
- * <dt><code>:quirks_mode?</code>
126
- * <dd>If set to <code>true</code>, if the parse is in quirks_mode, false
127
- * otherwise.
128
- *
129
123
  * <dt><code>:create_additions</code>
130
124
  * <dd>If set to <code>false</code>, the Parser doesn't create additions
131
125
  * even if a matching class and <code>create_id</code> was found. This option
@@ -137,9 +131,6 @@ public class Parser extends RubyObject {
137
131
  * <dt><code>:array_class</code>
138
132
  * <dd>Defaults to Array.
139
133
  *
140
- * <dt><code>:quirks_mode</code>
141
- * <dd>Enables quirks_mode for parser, that is for example parsing single
142
- * JSON values instead of documents is possible.
143
134
  * </dl>
144
135
  */
145
136
  @JRubyMethod(name = "new", required = 1, optional = 1, meta = true)
@@ -162,15 +153,20 @@ public class Parser extends RubyObject {
162
153
  this.maxNesting = opts.getInt("max_nesting", DEFAULT_MAX_NESTING);
163
154
  this.allowNaN = opts.getBool("allow_nan", false);
164
155
  this.symbolizeNames = opts.getBool("symbolize_names", false);
165
- this.quirksMode = opts.getBool("quirks_mode", false);
166
156
  this.createId = opts.getString("create_id", getCreateId(context));
167
157
  this.createAdditions = opts.getBool("create_additions", false);
168
158
  this.objectClass = opts.getClass("object_class", runtime.getHash());
169
159
  this.arrayClass = opts.getClass("array_class", runtime.getArray());
170
- this.match_string = opts.getHash("match_string");
160
+ this.matchString = opts.getHash("match_string");
171
161
 
162
+ if(symbolizeNames && createAdditions) {
163
+ throw runtime.newArgumentError(
164
+ "options :symbolize_names and :create_additions cannot be " +
165
+ " used in conjunction"
166
+ );
167
+ }
172
168
  this.vSource = args[0].convertToString();
173
- if (!quirksMode) this.vSource = convertEncoding(context, vSource);
169
+ this.vSource = convertEncoding(context, vSource);
174
170
 
175
171
  return this;
176
172
  }
@@ -181,33 +177,13 @@ public class Parser extends RubyObject {
181
177
  * Returns the source string if no conversion is needed.
182
178
  */
183
179
  private RubyString convertEncoding(ThreadContext context, RubyString source) {
184
- ByteList bl = source.getByteList();
185
- int len = bl.length();
186
- if (len < 2) {
187
- throw Utils.newException(context, Utils.M_PARSER_ERROR,
188
- "A JSON text must at least contain two octets!");
189
- }
190
-
191
- if (info.encodingsSupported()) {
192
- RubyEncoding encoding = (RubyEncoding)source.encoding(context);
193
- if (encoding != info.ascii8bit.get()) {
194
- return (RubyString)source.encode(context, info.utf8.get());
195
- }
196
-
197
- String sniffedEncoding = sniffByteList(bl);
198
- if (sniffedEncoding == null) return source; // assume UTF-8
199
- return reinterpretEncoding(context, source, sniffedEncoding);
200
- }
201
-
202
- String sniffedEncoding = sniffByteList(bl);
203
- if (sniffedEncoding == null) return source; // assume UTF-8
204
- Ruby runtime = context.getRuntime();
205
- return (RubyString)info.jsonModule.get().
206
- callMethod(context, "iconv",
207
- new IRubyObject[] {
208
- runtime.newString("utf-8"),
209
- runtime.newString(sniffedEncoding),
210
- source});
180
+ RubyEncoding encoding = (RubyEncoding)source.encoding(context);
181
+ if (encoding == info.ascii8bit.get()) {
182
+ source.force_encoding(context, info.utf8.get());
183
+ } else {
184
+ source = (RubyString) source.encode(context, info.utf8.get());
185
+ }
186
+ return source;
211
187
  }
212
188
 
213
189
  /**
@@ -260,17 +236,6 @@ public class Parser extends RubyObject {
260
236
  return checkAndGetSource().dup();
261
237
  }
262
238
 
263
- /**
264
- * <code>Parser#quirks_mode?()</code>
265
- *
266
- * <p>If set to <code>true</code>, if the parse is in quirks_mode, false
267
- * otherwise.
268
- */
269
- @JRubyMethod(name = "quirks_mode?")
270
- public IRubyObject quirks_mode_p(ThreadContext context) {
271
- return context.getRuntime().newBoolean(quirksMode);
272
- }
273
-
274
239
  public RubyString checkAndGetSource() {
275
240
  if (vSource != null) {
276
241
  return vSource;
@@ -394,7 +359,7 @@ public class Parser extends RubyObject {
394
359
  }
395
360
  }
396
361
  action parse_number {
397
- if (pe > fpc + 9 - (parser.quirksMode ? 1 : 0) &&
362
+ if (pe > fpc + 8 &&
398
363
  absSubSequence(fpc, fpc + 9).equals(JSON_MINUS_INFINITY)) {
399
364
 
400
365
  if (parser.allowNaN) {
@@ -624,11 +589,11 @@ public class Parser extends RubyObject {
624
589
  %% write exec;
625
590
 
626
591
  if (parser.createAdditions) {
627
- RubyHash match_string = parser.match_string;
628
- if (match_string != null) {
592
+ RubyHash matchString = parser.matchString;
593
+ if (matchString != null) {
629
594
  final IRubyObject[] memoArray = { result, null };
630
595
  try {
631
- match_string.visitAll(new RubyHash.Visitor() {
596
+ matchString.visitAll(new RubyHash.Visitor() {
632
597
  @Override
633
598
  public void visit(IRubyObject pattern, IRubyObject klass) {
634
599
  if (pattern.callMethod(context, "===", memoArray[0]).isTrue()) {
@@ -649,7 +614,7 @@ public class Parser extends RubyObject {
649
614
  }
650
615
 
651
616
  if (cs >= JSON_string_first_final && result != null) {
652
- if (info.encodingsSupported() && result instanceof RubyString) {
617
+ if (result instanceof RubyString) {
653
618
  ((RubyString)result).force_encoding(context, info.utf8.get());
654
619
  }
655
620
  res.update(result, p + 1);
@@ -836,60 +801,6 @@ public class Parser extends RubyObject {
836
801
 
837
802
  write data;
838
803
 
839
- action parse_object {
840
- currentNesting = 1;
841
- parseObject(res, fpc, pe);
842
- if (res.result == null) {
843
- fhold;
844
- fbreak;
845
- } else {
846
- result = res.result;
847
- fexec res.p;
848
- }
849
- }
850
-
851
- action parse_array {
852
- currentNesting = 1;
853
- parseArray(res, fpc, pe);
854
- if (res.result == null) {
855
- fhold;
856
- fbreak;
857
- } else {
858
- result = res.result;
859
- fexec res.p;
860
- }
861
- }
862
-
863
- main := ignore*
864
- ( begin_object >parse_object
865
- | begin_array >parse_array )
866
- ignore*;
867
- }%%
868
-
869
- public IRubyObject parseStrict() {
870
- int cs = EVIL;
871
- int p, pe;
872
- IRubyObject result = null;
873
- ParserResult res = new ParserResult();
874
-
875
- %% write init;
876
- p = byteList.begin();
877
- pe = p + byteList.length();
878
- %% write exec;
879
-
880
- if (cs >= JSON_first_final && p == pe) {
881
- return result;
882
- } else {
883
- throw unexpectedToken(p, pe);
884
- }
885
- }
886
-
887
- %%{
888
- machine JSON_quirks_mode;
889
- include JSON_common;
890
-
891
- write data;
892
-
893
804
  action parse_value {
894
805
  parseValue(res, fpc, pe);
895
806
  if (res.result == null) {
@@ -906,7 +817,7 @@ public class Parser extends RubyObject {
906
817
  ignore*;
907
818
  }%%
908
819
 
909
- public IRubyObject parseQuirksMode() {
820
+ public IRubyObject parseImplemetation() {
910
821
  int cs = EVIL;
911
822
  int p, pe;
912
823
  IRubyObject result = null;
@@ -917,7 +828,7 @@ public class Parser extends RubyObject {
917
828
  pe = p + byteList.length();
918
829
  %% write exec;
919
830
 
920
- if (cs >= JSON_quirks_mode_first_final && p == pe) {
831
+ if (cs >= JSON_first_final && p == pe) {
921
832
  return result;
922
833
  } else {
923
834
  throw unexpectedToken(p, pe);
@@ -925,12 +836,7 @@ public class Parser extends RubyObject {
925
836
  }
926
837
 
927
838
  public IRubyObject parse() {
928
- if (parser.quirksMode) {
929
- return parseQuirksMode();
930
- } else {
931
- return parseStrict();
932
- }
933
-
839
+ return parseImplemetation();
934
840
  }
935
841
 
936
842
  /**
@@ -1,8 +1,7 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
3
  *
4
- * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
- * for details.
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
6
5
  */
7
6
  package json.ext;
8
7
 
@@ -1,8 +1,7 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
3
  *
4
- * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
- * for details.
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
6
5
  */
7
6
  package json.ext;
8
7
 
@@ -91,10 +90,6 @@ final class RuntimeInfo {
91
90
  }
92
91
  }
93
92
 
94
- public boolean encodingsSupported() {
95
- return utf8 != null && utf8.get() != null;
96
- }
97
-
98
93
  public RubyEncoding getEncoding(ThreadContext context, String name) {
99
94
  synchronized (encodings) {
100
95
  WeakReference<RubyEncoding> encoding = encodings.get(name);
@@ -1,8 +1,7 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
3
  *
4
- * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
- * for details.
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
6
5
  */
7
6
  package json.ext;
8
7
 
@@ -1,3 +1,8 @@
1
+ /*
2
+ * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
+ *
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
5
+ */
1
6
  package json.ext;
2
7
 
3
8
  import org.jruby.exceptions.RaiseException;
@@ -1,8 +1,7 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
3
  *
4
- * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
- * for details.
4
+ * Distributed under the Ruby license: https://www.ruby-lang.org/en/about/license.txt
6
5
  */
7
6
  package json.ext;
8
7
 
data/json-java.gemspec CHANGED
@@ -14,6 +14,21 @@ spec = Gem::Specification.new do |s|
14
14
  s.licenses = ["Ruby"]
15
15
 
16
16
  s.files = Dir["{docs,lib,tests}/**/*"]
17
+
18
+ if s.respond_to? :specification_version then
19
+ s.specification_version = 4
20
+
21
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
22
+ s.add_development_dependency(%q<rake>, [">= 0"])
23
+ s.add_development_dependency(%q<test-unit>, ["~> 2.0"])
24
+ else
25
+ s.add_dependency(%q<rake>, [">= 0"])
26
+ s.add_dependency(%q<test-unit>, ["~> 2.0"])
27
+ end
28
+ else
29
+ s.add_dependency(%q<rake>, [">= 0"])
30
+ s.add_dependency(%q<test-unit>, ["~> 2.0"])
31
+ end
17
32
  end
18
33
 
19
34
  if $0 == __FILE__
data/json.gemspec CHANGED
Binary file
data/json_pure.gemspec CHANGED
@@ -1,40 +1,37 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: json_pure 1.8.3 ruby lib
2
+ # stub: json_pure 2.0.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = "json_pure"
6
- s.version = "1.8.3"
5
+ s.name = "json_pure".freeze
6
+ s.version = "2.0.0"
7
7
 
8
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
- s.require_paths = ["lib"]
10
- s.authors = ["Florian Frank"]
11
- s.date = "2015-06-01"
12
- s.description = "This is a JSON implementation in pure Ruby."
13
- s.email = "flori@ping.de"
14
- s.extra_rdoc_files = ["README.rdoc"]
15
- s.files = ["./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb", ".gitignore", ".travis.yml", "CHANGES", "COPYING", "COPYING-json-jruby", "GPL", "Gemfile", "README-json-jruby.markdown", "README.rdoc", "Rakefile", "TODO", "VERSION", "data/example.json", "data/index.html", "data/prototype.js", "diagrams/.keep", "ext/json/ext/fbuffer/fbuffer.h", "ext/json/ext/generator/depend", "ext/json/ext/generator/extconf.rb", "ext/json/ext/generator/generator.c", "ext/json/ext/generator/generator.h", "ext/json/ext/parser/depend", "ext/json/ext/parser/extconf.rb", "ext/json/ext/parser/parser.c", "ext/json/ext/parser/parser.h", "ext/json/ext/parser/parser.rl", "ext/json/extconf.rb", "install.rb", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/GeneratorMethods.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/Parser.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/ParserService.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/Utils.java", "json-java.gemspec", "json.gemspec", "json_pure.gemspec", "lib/json.rb", "lib/json/add/bigdecimal.rb", "lib/json/add/complex.rb", "lib/json/add/core.rb", "lib/json/add/date.rb", "lib/json/add/date_time.rb", "lib/json/add/exception.rb", "lib/json/add/ostruct.rb", "lib/json/add/range.rb", "lib/json/add/rational.rb", "lib/json/add/regexp.rb", "lib/json/add/struct.rb", "lib/json/add/symbol.rb", "lib/json/add/time.rb", "lib/json/common.rb", "lib/json/ext.rb", "lib/json/ext/.keep", "lib/json/generic_object.rb", "lib/json/pure.rb", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/version.rb", "tests/fixtures/fail1.json", "tests/fixtures/fail10.json", "tests/fixtures/fail11.json", "tests/fixtures/fail12.json", "tests/fixtures/fail13.json", "tests/fixtures/fail14.json", "tests/fixtures/fail18.json", "tests/fixtures/fail19.json", "tests/fixtures/fail2.json", "tests/fixtures/fail20.json", "tests/fixtures/fail21.json", "tests/fixtures/fail22.json", "tests/fixtures/fail23.json", "tests/fixtures/fail24.json", "tests/fixtures/fail25.json", "tests/fixtures/fail27.json", "tests/fixtures/fail28.json", "tests/fixtures/fail3.json", "tests/fixtures/fail4.json", "tests/fixtures/fail5.json", "tests/fixtures/fail6.json", "tests/fixtures/fail7.json", "tests/fixtures/fail8.json", "tests/fixtures/fail9.json", "tests/fixtures/pass1.json", "tests/fixtures/pass15.json", "tests/fixtures/pass16.json", "tests/fixtures/pass17.json", "tests/fixtures/pass2.json", "tests/fixtures/pass26.json", "tests/fixtures/pass3.json", "tests/setup_variant.rb", "tests/test_json.rb", "tests/test_json_addition.rb", "tests/test_json_encoding.rb", "tests/test_json_fixtures.rb", "tests/test_json_generate.rb", "tests/test_json_generic_object.rb", "tests/test_json_string_matching.rb", "tests/test_json_unicode.rb", "tools/fuzz.rb", "tools/server.rb"]
16
- s.homepage = "http://flori.github.com/json"
17
- s.licenses = ["Ruby"]
18
- s.rdoc_options = ["--title", "JSON implemention for ruby", "--main", "README.rdoc"]
19
- s.rubygems_version = "2.4.6"
20
- s.summary = "JSON Implementation for Ruby"
21
- s.test_files = ["./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb"]
8
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
+ s.require_paths = ["lib".freeze]
10
+ s.authors = ["Florian Frank".freeze]
11
+ s.date = "2016-07-01"
12
+ s.description = "This is a JSON implementation in pure Ruby.".freeze
13
+ s.email = "flori@ping.de".freeze
14
+ s.extra_rdoc_files = ["README.md".freeze]
15
+ s.files = ["./tests/test_helper.rb".freeze, ".gitignore".freeze, ".travis.yml".freeze, "CHANGES".freeze, "Gemfile".freeze, "README-json-jruby.markdown".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "data/example.json".freeze, "data/index.html".freeze, "data/prototype.js".freeze, "diagrams/.keep".freeze, "ext/json/ext/fbuffer/fbuffer.h".freeze, "ext/json/ext/generator/depend".freeze, "ext/json/ext/generator/extconf.rb".freeze, "ext/json/ext/generator/generator.c".freeze, "ext/json/ext/generator/generator.h".freeze, "ext/json/ext/parser/depend".freeze, "ext/json/ext/parser/extconf.rb".freeze, "ext/json/ext/parser/parser.c".freeze, "ext/json/ext/parser/parser.h".freeze, "ext/json/ext/parser/parser.rl".freeze, "ext/json/extconf.rb".freeze, "install.rb".freeze, "java/src/json/ext/ByteListTranscoder.java".freeze, "java/src/json/ext/Generator.java".freeze, "java/src/json/ext/GeneratorMethods.java".freeze, "java/src/json/ext/GeneratorService.java".freeze, "java/src/json/ext/GeneratorState.java".freeze, "java/src/json/ext/OptionsReader.java".freeze, "java/src/json/ext/Parser.java".freeze, "java/src/json/ext/Parser.rl".freeze, "java/src/json/ext/ParserService.java".freeze, "java/src/json/ext/RuntimeInfo.java".freeze, "java/src/json/ext/StringDecoder.java".freeze, "java/src/json/ext/StringEncoder.java".freeze, "java/src/json/ext/Utils.java".freeze, "json-java.gemspec".freeze, "json.gemspec".freeze, "json_pure.gemspec".freeze, "lib/json.rb".freeze, "lib/json/add/bigdecimal.rb".freeze, "lib/json/add/complex.rb".freeze, "lib/json/add/core.rb".freeze, "lib/json/add/date.rb".freeze, "lib/json/add/date_time.rb".freeze, "lib/json/add/exception.rb".freeze, "lib/json/add/ostruct.rb".freeze, "lib/json/add/range.rb".freeze, "lib/json/add/rational.rb".freeze, "lib/json/add/regexp.rb".freeze, "lib/json/add/struct.rb".freeze, "lib/json/add/symbol.rb".freeze, "lib/json/add/time.rb".freeze, "lib/json/common.rb".freeze, "lib/json/ext.rb".freeze, "lib/json/ext/.keep".freeze, "lib/json/generic_object.rb".freeze, "lib/json/pure.rb".freeze, "lib/json/pure/generator.rb".freeze, "lib/json/pure/parser.rb".freeze, "lib/json/version.rb".freeze, "references/rfc7159.txt".freeze, "tests/fixtures/fail10.json".freeze, "tests/fixtures/fail11.json".freeze, "tests/fixtures/fail12.json".freeze, "tests/fixtures/fail13.json".freeze, "tests/fixtures/fail14.json".freeze, "tests/fixtures/fail18.json".freeze, "tests/fixtures/fail19.json".freeze, "tests/fixtures/fail2.json".freeze, "tests/fixtures/fail20.json".freeze, "tests/fixtures/fail21.json".freeze, "tests/fixtures/fail22.json".freeze, "tests/fixtures/fail23.json".freeze, "tests/fixtures/fail24.json".freeze, "tests/fixtures/fail25.json".freeze, "tests/fixtures/fail27.json".freeze, "tests/fixtures/fail28.json".freeze, "tests/fixtures/fail3.json".freeze, "tests/fixtures/fail4.json".freeze, "tests/fixtures/fail5.json".freeze, "tests/fixtures/fail6.json".freeze, "tests/fixtures/fail7.json".freeze, "tests/fixtures/fail8.json".freeze, "tests/fixtures/fail9.json".freeze, "tests/fixtures/obsolete_fail1.json".freeze, "tests/fixtures/pass1.json".freeze, "tests/fixtures/pass15.json".freeze, "tests/fixtures/pass16.json".freeze, "tests/fixtures/pass17.json".freeze, "tests/fixtures/pass2.json".freeze, "tests/fixtures/pass26.json".freeze, "tests/fixtures/pass3.json".freeze, "tests/json_addition_test.rb".freeze, "tests/json_common_interface_test.rb".freeze, "tests/json_encoding_test.rb".freeze, "tests/json_ext_parser_test.rb".freeze, "tests/json_fixtures_test.rb".freeze, "tests/json_generator_test.rb".freeze, "tests/json_generic_object_test.rb".freeze, "tests/json_parser_test.rb".freeze, "tests/json_string_matching_test.rb".freeze, "tests/test_helper.rb".freeze, "tools/diff.sh".freeze, "tools/fuzz.rb".freeze, "tools/server.rb".freeze]
16
+ s.homepage = "http://flori.github.com/json".freeze
17
+ s.licenses = ["Ruby".freeze]
18
+ s.rdoc_options = ["--title".freeze, "JSON implemention for ruby".freeze, "--main".freeze, "README.md".freeze]
19
+ s.rubygems_version = "2.6.4".freeze
20
+ s.summary = "JSON Implementation for Ruby".freeze
21
+ s.test_files = ["./tests/test_helper.rb".freeze]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  s.specification_version = 4
25
25
 
26
26
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
- s.add_development_dependency(%q<permutation>, [">= 0"])
28
- s.add_development_dependency(%q<sdoc>, ["~> 0.3.16"]) if RUBY_VERSION > "1.8.6"
29
- s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
27
+ s.add_development_dependency(%q<rake>.freeze, [">= 0"])
28
+ s.add_development_dependency(%q<test-unit>.freeze, ["~> 2.0"])
30
29
  else
31
- s.add_dependency(%q<permutation>, [">= 0"])
32
- s.add_dependency(%q<sdoc>, ["~> 0.3.16"]) if RUBY_VERSION > "1.8.6"
33
- s.add_dependency(%q<rake>, ["~> 0.9.2"])
30
+ s.add_dependency(%q<rake>.freeze, [">= 0"])
31
+ s.add_dependency(%q<test-unit>.freeze, ["~> 2.0"])
34
32
  end
35
33
  else
36
- s.add_dependency(%q<permutation>, [">= 0"])
37
- s.add_dependency(%q<sdoc>, ["~> 0.3.16"]) if RUBY_VERSION > "1.8.6"
38
- s.add_dependency(%q<rake>, ["~> 0.9.2"])
34
+ s.add_dependency(%q<rake>.freeze, [">= 0"])
35
+ s.add_dependency(%q<test-unit>.freeze, ["~> 2.0"])
39
36
  end
40
37
  end
@@ -1,3 +1,4 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
@@ -1,3 +1,4 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
@@ -25,4 +26,4 @@ class Complex
25
26
  def to_json(*)
26
27
  as_json.to_json
27
28
  end
28
- end
29
+ end
data/lib/json/add/core.rb CHANGED
@@ -1,3 +1,4 @@
1
+ #frozen_string_literal: false
1
2
  # This file requires the implementations of ruby core's custom objects for
2
3
  # serialisation/deserialisation.
3
4
 
data/lib/json/add/date.rb CHANGED
@@ -1,9 +1,9 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
  require 'date'
5
6
 
6
- # Date serialization/deserialization
7
7
  class Date
8
8
 
9
9
  # Deserializes JSON string by converting Julian year <tt>y</tt>, month
@@ -1,9 +1,9 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
  require 'date'
5
6
 
6
- # DateTime serialization/deserialization
7
7
  class DateTime
8
8
 
9
9
  # Deserializes JSON string by converting year <tt>y</tt>, month <tt>m</tt>,
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Exception serialization/deserialization
6
6
  class Exception
7
7
 
8
8
  # Deserializes JSON string by constructing new Exception object with message
@@ -1,9 +1,9 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
  require 'ostruct'
5
6
 
6
- # OpenStruct serialization/deserialization
7
7
  class OpenStruct
8
8
 
9
9
  # Deserializes JSON string by constructing new Struct object with values
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Range serialization/deserialization
6
6
  class Range
7
7
 
8
8
  # Deserializes JSON string by constructing new Range object with arguments
@@ -1,3 +1,4 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Regexp serialization/deserialization
6
6
  class Regexp
7
7
 
8
8
  # Deserializes JSON string by constructing new Regexp object with source
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Struct serialization/deserialization
6
6
  class Struct
7
7
 
8
8
  # Deserializes JSON string by constructing new Struct object with values
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Symbol serialization/deserialization
6
6
  class Symbol
7
7
  # Returns a hash, that will be turned into a JSON object and represent this
8
8
  # object.
data/lib/json/add/time.rb CHANGED
@@ -1,8 +1,8 @@
1
+ #frozen_string_literal: false
1
2
  unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
3
  require 'json'
3
4
  end
4
5
 
5
- # Time serialization/deserialization
6
6
  class Time
7
7
 
8
8
  # Deserializes JSON string by converting time since epoch to Time