json_pure 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * This code is copyrighted work by Daniel Luz <dev at mernen dot com>.
3
- *
3
+ *
4
4
  * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files
5
5
  * for details.
6
6
  */
@@ -66,7 +66,7 @@ final class Utils {
66
66
  static RaiseException newException(ThreadContext context,
67
67
  String className, RubyString message) {
68
68
  RuntimeInfo info = RuntimeInfo.forRuntime(context.getRuntime());
69
- RubyClass klazz = info.jsonModule.getClass(className);
69
+ RubyClass klazz = info.jsonModule.get().getClass(className);
70
70
  RubyException excptn =
71
71
  (RubyException)klazz.newInstance(context,
72
72
  new IRubyObject[] {message}, Block.NULL_BLOCK);
data/json.gemspec CHANGED
@@ -1,25 +1,25 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |s|
4
- s.name = %q{json}
5
- s.version = "1.5.3"
4
+ s.name = "json"
5
+ s.version = "1.5.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = [%q{Florian Frank}]
9
- s.date = %q{2011-06-20}
10
- s.description = %q{This is a JSON implementation as a Ruby extension in C.}
11
- s.email = %q{flori@ping.de}
12
- s.executables = [%q{edit_json.rb}, %q{prettify_json.rb}]
13
- s.extensions = [%q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/generator/extconf.rb}]
14
- s.extra_rdoc_files = [%q{README.rdoc}]
15
- s.files = [%q{tests}, %q{tests/test_json_string_matching.rb}, %q{tests/test_json_fixtures.rb}, %q{tests/setup_variant.rb}, %q{tests/fixtures}, %q{tests/fixtures/fail6.json}, %q{tests/fixtures/fail9.json}, %q{tests/fixtures/fail10.json}, %q{tests/fixtures/fail24.json}, %q{tests/fixtures/fail28.json}, %q{tests/fixtures/fail13.json}, %q{tests/fixtures/fail4.json}, %q{tests/fixtures/pass3.json}, %q{tests/fixtures/fail11.json}, %q{tests/fixtures/fail14.json}, %q{tests/fixtures/fail3.json}, %q{tests/fixtures/fail12.json}, %q{tests/fixtures/pass16.json}, %q{tests/fixtures/pass15.json}, %q{tests/fixtures/fail20.json}, %q{tests/fixtures/fail8.json}, %q{tests/fixtures/pass2.json}, %q{tests/fixtures/fail5.json}, %q{tests/fixtures/fail1.json}, %q{tests/fixtures/fail25.json}, %q{tests/fixtures/pass17.json}, %q{tests/fixtures/fail7.json}, %q{tests/fixtures/pass26.json}, %q{tests/fixtures/fail21.json}, %q{tests/fixtures/pass1.json}, %q{tests/fixtures/fail23.json}, %q{tests/fixtures/fail18.json}, %q{tests/fixtures/fail2.json}, %q{tests/fixtures/fail22.json}, %q{tests/fixtures/fail27.json}, %q{tests/fixtures/fail19.json}, %q{tests/test_json_unicode.rb}, %q{tests/test_json_addition.rb}, %q{tests/test_json_generate.rb}, %q{tests/test_json_encoding.rb}, %q{tests/test_json.rb}, %q{COPYING}, %q{TODO}, %q{Rakefile}, %q{benchmarks}, %q{benchmarks/data-p4-3GHz-ruby18}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat}, %q{benchmarks/parser2_benchmark.rb}, %q{benchmarks/parser_benchmark.rb}, %q{benchmarks/generator2_benchmark.rb}, %q{benchmarks/generator_benchmark.rb}, %q{benchmarks/ohai.ruby}, %q{benchmarks/data}, %q{benchmarks/ohai.json}, %q{lib}, %q{lib/json}, %q{lib/json/json.xpm}, %q{lib/json/TrueClass.xpm}, %q{lib/json/version.rb}, %q{lib/json/Array.xpm}, %q{lib/json/add}, %q{lib/json/add/core.rb}, %q{lib/json/add/rails.rb}, %q{lib/json/common.rb}, %q{lib/json/pure}, %q{lib/json/pure/generator.rb}, %q{lib/json/pure/parser.rb}, %q{lib/json/ext.rb}, %q{lib/json/pure.rb}, %q{lib/json/Key.xpm}, %q{lib/json/FalseClass.xpm}, %q{lib/json/editor.rb}, %q{lib/json/Numeric.xpm}, %q{lib/json/ext}, %q{lib/json/ext/1.9}, %q{lib/json/ext/1.8}, %q{lib/json/NilClass.xpm}, %q{lib/json/String.xpm}, %q{lib/json/Hash.xpm}, %q{lib/json.rb}, %q{Gemfile}, %q{README.rdoc}, %q{json_pure.gemspec}, %q{GPL}, %q{CHANGES}, %q{bin}, %q{bin/prettify_json.rb}, %q{bin/edit_json.rb}, %q{COPYING-json-jruby}, %q{ext}, %q{ext/json}, %q{ext/json/ext}, %q{ext/json/ext/parser}, %q{ext/json/ext/parser/parser.h}, %q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/parser/parser.rl}, %q{ext/json/ext/parser/parser.c}, %q{ext/json/ext/generator}, %q{ext/json/ext/generator/generator.c}, %q{ext/json/ext/generator/extconf.rb}, %q{ext/json/ext/generator/generator.h}, %q{VERSION}, %q{data}, %q{data/prototype.js}, %q{data/index.html}, %q{data/example.json}, %q{json.gemspec}, %q{java}, %q{java/src}, %q{java/src/json}, %q{java/src/json/ext}, %q{java/src/json/ext/Parser.java}, %q{java/src/json/ext/RuntimeInfo.java}, %q{java/src/json/ext/GeneratorState.java}, %q{java/src/json/ext/OptionsReader.java}, %q{java/src/json/ext/ParserService.java}, %q{java/src/json/ext/Parser.rl}, %q{java/src/json/ext/StringEncoder.java}, %q{java/src/json/ext/GeneratorService.java}, %q{java/src/json/ext/Utils.java}, %q{java/src/json/ext/StringDecoder.java}, %q{java/src/json/ext/Generator.java}, %q{java/src/json/ext/ByteListTranscoder.java}, %q{java/src/json/ext/GeneratorMethods.java}, %q{java/lib}, %q{java/lib/bytelist-1.0.6.jar}, %q{java/lib/jcodings.jar}, %q{diagrams}, %q{README-json-jruby.markdown}, %q{install.rb}, %q{json-java.gemspec}, %q{tools}, %q{tools/fuzz.rb}, %q{tools/server.rb}, %q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
16
- s.homepage = %q{http://flori.github.com/json}
17
- s.rdoc_options = [%q{--title}, %q{JSON implemention for Ruby}, %q{--main}, %q{README.rdoc}]
18
- s.require_paths = [%q{ext/json/ext}, %q{ext}, %q{lib}]
19
- s.rubyforge_project = %q{json}
20
- s.rubygems_version = %q{1.8.5}
21
- s.summary = %q{JSON Implementation for Ruby}
22
- s.test_files = [%q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
8
+ s.authors = ["Florian Frank"]
9
+ s.date = "2011-08-31"
10
+ s.description = "This is a JSON implementation as a Ruby extension in C."
11
+ s.email = "flori@ping.de"
12
+ s.executables = ["edit_json.rb", "prettify_json.rb"]
13
+ s.extensions = ["ext/json/ext/parser/extconf.rb", "ext/json/ext/generator/extconf.rb"]
14
+ s.extra_rdoc_files = ["README.rdoc"]
15
+ s.files = ["tests", "tests/test_json_string_matching.rb", "tests/test_json_fixtures.rb", "tests/setup_variant.rb", "tests/fixtures", "tests/fixtures/fail6.json", "tests/fixtures/fail9.json", "tests/fixtures/fail10.json", "tests/fixtures/fail24.json", "tests/fixtures/fail28.json", "tests/fixtures/fail13.json", "tests/fixtures/fail4.json", "tests/fixtures/pass3.json", "tests/fixtures/fail11.json", "tests/fixtures/fail14.json", "tests/fixtures/fail3.json", "tests/fixtures/fail12.json", "tests/fixtures/pass16.json", "tests/fixtures/pass15.json", "tests/fixtures/fail20.json", "tests/fixtures/fail8.json", "tests/fixtures/pass2.json", "tests/fixtures/fail5.json", "tests/fixtures/fail1.json", "tests/fixtures/fail25.json", "tests/fixtures/pass17.json", "tests/fixtures/fail7.json", "tests/fixtures/pass26.json", "tests/fixtures/fail21.json", "tests/fixtures/pass1.json", "tests/fixtures/fail23.json", "tests/fixtures/fail18.json", "tests/fixtures/fail2.json", "tests/fixtures/fail22.json", "tests/fixtures/fail27.json", "tests/fixtures/fail19.json", "tests/test_json_unicode.rb", "tests/test_json_addition.rb", "tests/test_json_generate.rb", "tests/test_json_encoding.rb", "tests/test_json.rb", "COPYING", "TODO", "Rakefile", "benchmarks", "benchmarks/data-p4-3GHz-ruby18", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat", "benchmarks/parser2_benchmark.rb", "benchmarks/parser_benchmark.rb", "benchmarks/generator2_benchmark.rb", "benchmarks/generator_benchmark.rb", "benchmarks/ohai.ruby", "benchmarks/data", "benchmarks/ohai.json", "lib", "lib/json", "lib/json/json.xpm", "lib/json/TrueClass.xpm", "lib/json/version.rb", "lib/json/Array.xpm", "lib/json/add", "lib/json/add/complex.rb", "lib/json/add/rational.rb", "lib/json/add/core.rb", "lib/json/common.rb", "lib/json/pure", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/ext.rb", "lib/json/pure.rb", "lib/json/Key.xpm", "lib/json/FalseClass.xpm", "lib/json/editor.rb", "lib/json/Numeric.xpm", "lib/json/ext", "lib/json/NilClass.xpm", "lib/json/String.xpm", "lib/json/Hash.xpm", "lib/json.rb", "Gemfile", "README.rdoc", "json_pure.gemspec", "GPL", "CHANGES", "bin", "bin/prettify_json.rb", "bin/edit_json.rb", "COPYING-json-jruby", "ext", "ext/json", "ext/json/ext", "ext/json/ext/parser", "ext/json/ext/parser/parser.h", "ext/json/ext/parser/extconf.rb", "ext/json/ext/parser/parser.rl", "ext/json/ext/parser/parser.c", "ext/json/ext/generator", "ext/json/ext/generator/generator.c", "ext/json/ext/generator/extconf.rb", "ext/json/ext/generator/generator.h", "VERSION", "data", "data/prototype.js", "data/index.html", "data/example.json", "json.gemspec", "java", "java/src", "java/src/json", "java/src/json/ext", "java/src/json/ext/Parser.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/ParserService.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/Utils.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/GeneratorMethods.java", "java/lib", "java/lib/bytelist-1.0.6.jar", "java/lib/jcodings.jar", "diagrams", "README-json-jruby.markdown", "install.rb", "json-java.gemspec", "tools", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_unicode.rb", "./tests/test_json_addition.rb", "./tests/test_json_generate.rb", "./tests/test_json_encoding.rb", "./tests/test_json.rb"]
16
+ s.homepage = "http://flori.github.com/json"
17
+ s.rdoc_options = ["--title", "JSON implemention for Ruby", "--main", "README.rdoc"]
18
+ s.require_paths = ["ext/json/ext", "ext", "lib"]
19
+ s.rubyforge_project = "json"
20
+ s.rubygems_version = "1.8.10"
21
+ s.summary = "JSON Implementation for Ruby"
22
+ s.test_files = ["./tests/test_json_string_matching.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_unicode.rb", "./tests/test_json_addition.rb", "./tests/test_json_generate.rb", "./tests/test_json_encoding.rb", "./tests/test_json.rb"]
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  s.specification_version = 3
data/json_pure.gemspec CHANGED
@@ -1,24 +1,24 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |s|
4
- s.name = %q{json_pure}
5
- s.version = "1.5.3"
4
+ s.name = "json_pure"
5
+ s.version = "1.5.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = [%q{Florian Frank}]
9
- s.date = %q{2011-06-20}
10
- s.description = %q{This is a JSON implementation in pure Ruby.}
11
- s.email = %q{flori@ping.de}
12
- s.executables = [%q{edit_json.rb}, %q{prettify_json.rb}]
13
- s.extra_rdoc_files = [%q{README.rdoc}]
14
- s.files = [%q{tests}, %q{tests/test_json_string_matching.rb}, %q{tests/test_json_fixtures.rb}, %q{tests/setup_variant.rb}, %q{tests/fixtures}, %q{tests/fixtures/fail6.json}, %q{tests/fixtures/fail9.json}, %q{tests/fixtures/fail10.json}, %q{tests/fixtures/fail24.json}, %q{tests/fixtures/fail28.json}, %q{tests/fixtures/fail13.json}, %q{tests/fixtures/fail4.json}, %q{tests/fixtures/pass3.json}, %q{tests/fixtures/fail11.json}, %q{tests/fixtures/fail14.json}, %q{tests/fixtures/fail3.json}, %q{tests/fixtures/fail12.json}, %q{tests/fixtures/pass16.json}, %q{tests/fixtures/pass15.json}, %q{tests/fixtures/fail20.json}, %q{tests/fixtures/fail8.json}, %q{tests/fixtures/pass2.json}, %q{tests/fixtures/fail5.json}, %q{tests/fixtures/fail1.json}, %q{tests/fixtures/fail25.json}, %q{tests/fixtures/pass17.json}, %q{tests/fixtures/fail7.json}, %q{tests/fixtures/pass26.json}, %q{tests/fixtures/fail21.json}, %q{tests/fixtures/pass1.json}, %q{tests/fixtures/fail23.json}, %q{tests/fixtures/fail18.json}, %q{tests/fixtures/fail2.json}, %q{tests/fixtures/fail22.json}, %q{tests/fixtures/fail27.json}, %q{tests/fixtures/fail19.json}, %q{tests/test_json_unicode.rb}, %q{tests/test_json_addition.rb}, %q{tests/test_json_generate.rb}, %q{tests/test_json_encoding.rb}, %q{tests/test_json.rb}, %q{COPYING}, %q{TODO}, %q{Rakefile}, %q{benchmarks}, %q{benchmarks/data-p4-3GHz-ruby18}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat}, %q{benchmarks/parser2_benchmark.rb}, %q{benchmarks/parser_benchmark.rb}, %q{benchmarks/generator2_benchmark.rb}, %q{benchmarks/generator_benchmark.rb}, %q{benchmarks/ohai.ruby}, %q{benchmarks/data}, %q{benchmarks/ohai.json}, %q{lib}, %q{lib/json}, %q{lib/json/json.xpm}, %q{lib/json/TrueClass.xpm}, %q{lib/json/version.rb}, %q{lib/json/Array.xpm}, %q{lib/json/add}, %q{lib/json/add/core.rb}, %q{lib/json/add/rails.rb}, %q{lib/json/common.rb}, %q{lib/json/pure}, %q{lib/json/pure/generator.rb}, %q{lib/json/pure/parser.rb}, %q{lib/json/ext.rb}, %q{lib/json/pure.rb}, %q{lib/json/Key.xpm}, %q{lib/json/FalseClass.xpm}, %q{lib/json/editor.rb}, %q{lib/json/Numeric.xpm}, %q{lib/json/ext}, %q{lib/json/ext/1.9}, %q{lib/json/ext/1.8}, %q{lib/json/NilClass.xpm}, %q{lib/json/String.xpm}, %q{lib/json/Hash.xpm}, %q{lib/json.rb}, %q{Gemfile}, %q{README.rdoc}, %q{json_pure.gemspec}, %q{GPL}, %q{CHANGES}, %q{bin}, %q{bin/prettify_json.rb}, %q{bin/edit_json.rb}, %q{COPYING-json-jruby}, %q{ext}, %q{ext/json}, %q{ext/json/ext}, %q{ext/json/ext/parser}, %q{ext/json/ext/parser/parser.h}, %q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/parser/parser.rl}, %q{ext/json/ext/parser/parser.c}, %q{ext/json/ext/generator}, %q{ext/json/ext/generator/generator.c}, %q{ext/json/ext/generator/extconf.rb}, %q{ext/json/ext/generator/generator.h}, %q{VERSION}, %q{data}, %q{data/prototype.js}, %q{data/index.html}, %q{data/example.json}, %q{json.gemspec}, %q{java}, %q{java/src}, %q{java/src/json}, %q{java/src/json/ext}, %q{java/src/json/ext/Parser.java}, %q{java/src/json/ext/RuntimeInfo.java}, %q{java/src/json/ext/GeneratorState.java}, %q{java/src/json/ext/OptionsReader.java}, %q{java/src/json/ext/ParserService.java}, %q{java/src/json/ext/Parser.rl}, %q{java/src/json/ext/StringEncoder.java}, %q{java/src/json/ext/GeneratorService.java}, %q{java/src/json/ext/Utils.java}, %q{java/src/json/ext/StringDecoder.java}, %q{java/src/json/ext/Generator.java}, %q{java/src/json/ext/ByteListTranscoder.java}, %q{java/src/json/ext/GeneratorMethods.java}, %q{java/lib}, %q{java/lib/bytelist-1.0.6.jar}, %q{java/lib/jcodings.jar}, %q{diagrams}, %q{README-json-jruby.markdown}, %q{install.rb}, %q{json-java.gemspec}, %q{tools}, %q{tools/fuzz.rb}, %q{tools/server.rb}, %q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
15
- s.homepage = %q{http://flori.github.com/json}
16
- s.rdoc_options = [%q{--title}, %q{JSON implemention for ruby}, %q{--main}, %q{README.rdoc}]
17
- s.require_paths = [%q{lib}]
18
- s.rubyforge_project = %q{json}
19
- s.rubygems_version = %q{1.8.5}
20
- s.summary = %q{JSON Implementation for Ruby}
21
- s.test_files = [%q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
8
+ s.authors = ["Florian Frank"]
9
+ s.date = "2011-08-31"
10
+ s.description = "This is a JSON implementation in pure Ruby."
11
+ s.email = "flori@ping.de"
12
+ s.executables = ["edit_json.rb", "prettify_json.rb"]
13
+ s.extra_rdoc_files = ["README.rdoc"]
14
+ s.files = ["tests", "tests/test_json_string_matching.rb", "tests/test_json_fixtures.rb", "tests/setup_variant.rb", "tests/fixtures", "tests/fixtures/fail6.json", "tests/fixtures/fail9.json", "tests/fixtures/fail10.json", "tests/fixtures/fail24.json", "tests/fixtures/fail28.json", "tests/fixtures/fail13.json", "tests/fixtures/fail4.json", "tests/fixtures/pass3.json", "tests/fixtures/fail11.json", "tests/fixtures/fail14.json", "tests/fixtures/fail3.json", "tests/fixtures/fail12.json", "tests/fixtures/pass16.json", "tests/fixtures/pass15.json", "tests/fixtures/fail20.json", "tests/fixtures/fail8.json", "tests/fixtures/pass2.json", "tests/fixtures/fail5.json", "tests/fixtures/fail1.json", "tests/fixtures/fail25.json", "tests/fixtures/pass17.json", "tests/fixtures/fail7.json", "tests/fixtures/pass26.json", "tests/fixtures/fail21.json", "tests/fixtures/pass1.json", "tests/fixtures/fail23.json", "tests/fixtures/fail18.json", "tests/fixtures/fail2.json", "tests/fixtures/fail22.json", "tests/fixtures/fail27.json", "tests/fixtures/fail19.json", "tests/test_json_unicode.rb", "tests/test_json_addition.rb", "tests/test_json_generate.rb", "tests/test_json_encoding.rb", "tests/test_json.rb", "COPYING", "TODO", "Rakefile", "benchmarks", "benchmarks/data-p4-3GHz-ruby18", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat", "benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat", "benchmarks/parser2_benchmark.rb", "benchmarks/parser_benchmark.rb", "benchmarks/generator2_benchmark.rb", "benchmarks/generator_benchmark.rb", "benchmarks/ohai.ruby", "benchmarks/data", "benchmarks/ohai.json", "lib", "lib/json", "lib/json/json.xpm", "lib/json/TrueClass.xpm", "lib/json/version.rb", "lib/json/Array.xpm", "lib/json/add", "lib/json/add/complex.rb", "lib/json/add/rational.rb", "lib/json/add/core.rb", "lib/json/common.rb", "lib/json/pure", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/ext.rb", "lib/json/pure.rb", "lib/json/Key.xpm", "lib/json/FalseClass.xpm", "lib/json/editor.rb", "lib/json/Numeric.xpm", "lib/json/ext", "lib/json/NilClass.xpm", "lib/json/String.xpm", "lib/json/Hash.xpm", "lib/json.rb", "Gemfile", "README.rdoc", "json_pure.gemspec", "GPL", "CHANGES", "bin", "bin/prettify_json.rb", "bin/edit_json.rb", "COPYING-json-jruby", "ext", "ext/json", "ext/json/ext", "ext/json/ext/parser", "ext/json/ext/parser/parser.h", "ext/json/ext/parser/extconf.rb", "ext/json/ext/parser/parser.rl", "ext/json/ext/parser/parser.c", "ext/json/ext/generator", "ext/json/ext/generator/generator.c", "ext/json/ext/generator/extconf.rb", "ext/json/ext/generator/generator.h", "VERSION", "data", "data/prototype.js", "data/index.html", "data/example.json", "json.gemspec", "java", "java/src", "java/src/json", "java/src/json/ext", "java/src/json/ext/Parser.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/ParserService.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/Utils.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/GeneratorMethods.java", "java/lib", "java/lib/bytelist-1.0.6.jar", "java/lib/jcodings.jar", "diagrams", "README-json-jruby.markdown", "install.rb", "json-java.gemspec", "tools", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_unicode.rb", "./tests/test_json_addition.rb", "./tests/test_json_generate.rb", "./tests/test_json_encoding.rb", "./tests/test_json.rb"]
15
+ s.homepage = "http://flori.github.com/json"
16
+ s.rdoc_options = ["--title", "JSON implemention for ruby", "--main", "README.rdoc"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = "json"
19
+ s.rubygems_version = "1.8.10"
20
+ s.summary = "JSON Implementation for Ruby"
21
+ s.test_files = ["./tests/test_json_string_matching.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_unicode.rb", "./tests/test_json_addition.rb", "./tests/test_json_generate.rb", "./tests/test_json_encoding.rb", "./tests/test_json.rb"]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  s.specification_version = 3
@@ -27,14 +27,20 @@ Gem::Specification.new do |s|
27
27
  s.add_development_dependency(%q<permutation>, [">= 0"])
28
28
  s.add_development_dependency(%q<bullshit>, [">= 0"])
29
29
  s.add_development_dependency(%q<sdoc>, [">= 0"])
30
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
31
+ s.add_runtime_dependency(%q<spruz>, ["~> 0.2.8"])
30
32
  else
31
33
  s.add_dependency(%q<permutation>, [">= 0"])
32
34
  s.add_dependency(%q<bullshit>, [">= 0"])
33
35
  s.add_dependency(%q<sdoc>, [">= 0"])
36
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
37
+ s.add_dependency(%q<spruz>, ["~> 0.2.8"])
34
38
  end
35
39
  else
36
40
  s.add_dependency(%q<permutation>, [">= 0"])
37
41
  s.add_dependency(%q<bullshit>, [">= 0"])
38
42
  s.add_dependency(%q<sdoc>, [">= 0"])
43
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
44
+ s.add_dependency(%q<spruz>, ["~> 0.2.8"])
39
45
  end
40
46
  end
data/lib/json.rb CHANGED
@@ -7,15 +7,15 @@
7
7
  #
8
8
  # Built on two universally available structures:
9
9
  # 1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.
10
- # 2. An orderd list of values. More commonly named as an _array_, vector, sequence, or list.
10
+ # 2. An ordered list of values. More commonly called an _array_, vector, sequence or list.
11
11
  #
12
12
  # To read more about JSON visit: http://json.org
13
13
  #
14
14
  # == Parsing JSON
15
15
  #
16
- # To parse a JSON string received by another application, or generated within
16
+ # To parse a JSON string received by another application or generated within
17
17
  # your existing application:
18
- #
18
+ #
19
19
  # require 'json'
20
20
  #
21
21
  # my_hash = JSON.parse('{"hello": "goodbye"}')
@@ -32,7 +32,7 @@
32
32
  # just as simple.
33
33
  #
34
34
  # require 'json'
35
- #
35
+ #
36
36
  # my_hash = {:hello => "goodbye"}
37
37
  # puts JSON.generate(my_hash) => "{\"hello\":\"goodbye\"}"
38
38
  #
@@ -41,9 +41,9 @@
41
41
  # require 'json'
42
42
  # puts {:hello => "goodbye"}.to_json => "{\"hello\":\"goodbye\"}"
43
43
  #
44
- # <tt>JSON.generate</tt> only allows objects or arrays to be converted
45
- # to JSON syntax. While <tt>to_json</tt> accepts many Ruby classes
46
- # even though it only acts a method for serialization:
44
+ # <tt>JSON.generate</tt> only allows objects or arrays to be converted
45
+ # to JSON syntax. <tt>to_json</tt>, however, accepts many Ruby classes
46
+ # even though it acts only as a method for serialization:
47
47
  #
48
48
  # require 'json'
49
49
  #
@@ -0,0 +1,22 @@
1
+ unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
+ require 'json'
3
+ end
4
+ defined?(::Complex) or require 'complex'
5
+
6
+ class Complex
7
+ def self.json_create(object)
8
+ Complex(object['r'], object['i'])
9
+ end
10
+
11
+ def as_json(*)
12
+ {
13
+ JSON.create_id => self.class.name,
14
+ 'r' => real,
15
+ 'i' => imag,
16
+ }
17
+ end
18
+
19
+ def to_json(*)
20
+ as_json.to_json
21
+ end
22
+ end
data/lib/json/add/core.rb CHANGED
@@ -21,7 +21,7 @@ class Symbol
21
21
  def to_json(*a)
22
22
  as_json.to_json(*a)
23
23
  end
24
-
24
+
25
25
  # Deserializes JSON string by converting the <tt>string</tt> value stored in the object to a Symbol
26
26
  def self.json_create(o)
27
27
  o['s'].to_sym
@@ -52,7 +52,7 @@ class Time
52
52
  'n' => respond_to?(:tv_nsec) ? tv_nsec : tv_usec * 1000
53
53
  }
54
54
  end
55
-
55
+
56
56
  # Stores class name (Time) with number of seconds since epoch and number of
57
57
  # microseconds for Time as JSON string
58
58
  def to_json(*args)
@@ -62,7 +62,7 @@ end
62
62
 
63
63
  # Date serialization/deserialization
64
64
  class Date
65
-
65
+
66
66
  # Deserializes JSON string by converting Julian year <tt>y</tt>, month
67
67
  # <tt>m</tt>, day <tt>d</tt> and Day of Calendar Reform <tt>sg</tt> to Date.
68
68
  def self.json_create(object)
@@ -80,7 +80,7 @@ class Date
80
80
  'm' => month,
81
81
  'd' => day,
82
82
  'sg' => start,
83
- }
83
+ }
84
84
  end
85
85
 
86
86
  # Stores class name (Date) with Julian year <tt>y</tt>, month <tt>m</tt>, day
@@ -123,7 +123,7 @@ class DateTime
123
123
  'S' => sec,
124
124
  'of' => offset.to_s,
125
125
  'sg' => start,
126
- }
126
+ }
127
127
  end
128
128
 
129
129
  # Stores class name (DateTime) with Julian year <tt>y</tt>, month <tt>m</tt>,
@@ -136,7 +136,7 @@ end
136
136
 
137
137
  # Range serialization/deserialization
138
138
  class Range
139
-
139
+
140
140
  # Deserializes JSON string by constructing new Range object with arguments
141
141
  # <tt>a</tt> serialized by <tt>to_json</tt>.
142
142
  def self.json_create(object)
@@ -162,7 +162,7 @@ end
162
162
 
163
163
  # Struct serialization/deserialization
164
164
  class Struct
165
-
165
+
166
166
  # Deserializes JSON string by constructing new Struct object with values
167
167
  # <tt>v</tt> serialized by <tt>to_json</tt>.
168
168
  def self.json_create(object)
@@ -230,8 +230,8 @@ class Regexp
230
230
  def as_json(*)
231
231
  {
232
232
  JSON.create_id => self.class.name,
233
- 'o' => options,
234
- 's' => source,
233
+ 'o' => options,
234
+ 's' => source,
235
235
  }
236
236
  end
237
237
 
@@ -0,0 +1,22 @@
1
+ unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
+ require 'json'
3
+ end
4
+ defined?(::Rational) or require 'rational'
5
+
6
+ class Rational
7
+ def self.json_create(object)
8
+ Rational(object['n'], object['d'])
9
+ end
10
+
11
+ def as_json(*)
12
+ {
13
+ JSON.create_id => self.class.name,
14
+ 'n' => numerator,
15
+ 'd' => denominator,
16
+ }
17
+ end
18
+
19
+ def to_json(*)
20
+ as_json.to_json
21
+ end
22
+ end
data/lib/json/common.rb CHANGED
@@ -2,11 +2,11 @@ require 'json/version'
2
2
 
3
3
  module JSON
4
4
  class << self
5
- # If _object_ is string-like parse the string and return the parsed result
5
+ # If _object_ is string-like, parse the string and return the parsed result
6
6
  # as a Ruby data structure. Otherwise generate a JSON text from the Ruby
7
7
  # data structure object and return it.
8
8
  #
9
- # The _opts_ argument is passed through to generate/parse respectively, see
9
+ # The _opts_ argument is passed through to generate/parse respectively. See
10
10
  # generate and parse for their documentation.
11
11
  def [](object, opts = {})
12
12
  if object.respond_to? :to_str
@@ -16,7 +16,7 @@ module JSON
16
16
  end
17
17
  end
18
18
 
19
- # Returns the JSON parser class, that is used by JSON. This might be either
19
+ # Returns the JSON parser class that is used by JSON. This is either
20
20
  # JSON::Ext::Parser or JSON::Pure::Parser.
21
21
  attr_reader :parser
22
22
 
@@ -28,7 +28,7 @@ module JSON
28
28
  end
29
29
 
30
30
  # Return the constant located at _path_. The format of _path_ has to be
31
- # either ::A::B::C or A::B::C. In any case A has to be located at the top
31
+ # either ::A::B::C or A::B::C. In any case, A has to be located at the top
32
32
  # level (absolute namespace path?). If there doesn't exist a constant at
33
33
  # the given path, an ArgumentError is raised.
34
34
  def deep_const_get(path) # :nodoc:
@@ -81,15 +81,15 @@ module JSON
81
81
  $VERBOSE = old
82
82
  end
83
83
 
84
- # Returns the JSON generator modul, that is used by JSON. This might be
84
+ # Returns the JSON generator module that is used by JSON. This is
85
85
  # either JSON::Ext::Generator or JSON::Pure::Generator.
86
86
  attr_reader :generator
87
87
 
88
- # Returns the JSON generator state class, that is used by JSON. This might
89
- # be either JSON::Ext::Generator::State or JSON::Pure::Generator::State.
88
+ # Returns the JSON generator state class that is used by JSON. This is
89
+ # either JSON::Ext::Generator::State or JSON::Pure::Generator::State.
90
90
  attr_accessor :state
91
91
 
92
- # This is create identifier, that is used to decide, if the _json_create_
92
+ # This is create identifier, which is used to decide if the _json_create_
93
93
  # hook of a class should be called. It defaults to 'json_class'.
94
94
  attr_accessor :create_id
95
95
  end
@@ -104,10 +104,10 @@ module JSON
104
104
  # The base exception for JSON errors.
105
105
  class JSONError < StandardError; end
106
106
 
107
- # This exception is raised, if a parser error occurs.
107
+ # This exception is raised if a parser error occurs.
108
108
  class ParserError < JSONError; end
109
109
 
110
- # This exception is raised, if the nesting of parsed datastructures is too
110
+ # This exception is raised if the nesting of parsed data structures is too
111
111
  # deep.
112
112
  class NestingError < ParserError; end
113
113
 
@@ -115,13 +115,13 @@ module JSON
115
115
  class CircularDatastructure < NestingError; end
116
116
  # :startdoc:
117
117
 
118
- # This exception is raised, if a generator or unparser error occurs.
118
+ # This exception is raised if a generator or unparser error occurs.
119
119
  class GeneratorError < JSONError; end
120
120
  # For backwards compatibility
121
121
  UnparserError = GeneratorError
122
122
 
123
- # This exception is raised, if the required unicode support is missing on the
124
- # system. Usually this means, that the iconv library is not installed.
123
+ # This exception is raised if the required unicode support is missing on the
124
+ # system. Usually this means that the iconv library is not installed.
125
125
  class MissingUnicodeSupport < JSONError; end
126
126
 
127
127
  module_function
@@ -131,16 +131,16 @@ module JSON
131
131
  # _opts_ can have the following
132
132
  # keys:
133
133
  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
134
- # structures. Disable depth checking with :max_nesting => false, it defaults
134
+ # structures. Disable depth checking with :max_nesting => false. It defaults
135
135
  # to 19.
136
136
  # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
137
137
  # defiance of RFC 4627 to be parsed by the Parser. This option defaults
138
138
  # to false.
139
139
  # * *symbolize_names*: If set to true, returns symbols for the names
140
- # (keys) in a JSON object. Otherwise strings are returned, which is also
140
+ # (keys) in a JSON object. Otherwise strings are returned. Strings are
141
141
  # the default.
142
142
  # * *create_additions*: If set to false, the Parser doesn't create
143
- # additions even if a matchin class and create_id was found. This option
143
+ # additions even if a matching class and create_id was found. This option
144
144
  # defaults to true.
145
145
  # * *object_class*: Defaults to Hash
146
146
  # * *array_class*: Defaults to Array
@@ -149,19 +149,19 @@ module JSON
149
149
  end
150
150
 
151
151
  # Parse the JSON document _source_ into a Ruby data structure and return it.
152
- # The bang version of the parse method, defaults to the more dangerous values
152
+ # The bang version of the parse method defaults to the more dangerous values
153
153
  # for the _opts_ hash, so be sure only to parse trusted _source_ documents.
154
154
  #
155
155
  # _opts_ can have the following keys:
156
156
  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
157
157
  # structures. Enable depth checking with :max_nesting => anInteger. The parse!
158
- # methods defaults to not doing max depth checking: This can be dangerous,
158
+ # methods defaults to not doing max depth checking: This can be dangerous
159
159
  # if someone wants to fill up your stack.
160
160
  # * *allow_nan*: If set to true, allow NaN, Infinity, and -Infinity in
161
161
  # defiance of RFC 4627 to be parsed by the Parser. This option defaults
162
162
  # to true.
163
163
  # * *create_additions*: If set to false, the Parser doesn't create
164
- # additions even if a matchin class and create_id was found. This option
164
+ # additions even if a matching class and create_id was found. This option
165
165
  # defaults to true.
166
166
  def parse!(source, opts = {})
167
167
  opts = {
@@ -185,10 +185,10 @@ module JSON
185
185
  # * *indent*: a string used to indent levels (default: ''),
186
186
  # * *space*: a string that is put after, a : or , delimiter (default: ''),
187
187
  # * *space_before*: a string that is put before a : pair delimiter (default: ''),
188
- # * *object_nl*: a string that is put at the end of a JSON object (default: ''),
188
+ # * *object_nl*: a string that is put at the end of a JSON object (default: ''),
189
189
  # * *array_nl*: a string that is put at the end of a JSON array (default: ''),
190
190
  # * *allow_nan*: true if NaN, Infinity, and -Infinity should be
191
- # generated, otherwise an exception is thrown, if these values are
191
+ # generated, otherwise an exception is thrown if these values are
192
192
  # encountered. This options defaults to false.
193
193
  # * *max_nesting*: The maximum depth of nesting allowed in the data
194
194
  # structures from which JSON is to be generated. Disable depth checking
@@ -196,9 +196,13 @@ module JSON
196
196
  #
197
197
  # See also the fast_generate for the fastest creation method with the least
198
198
  # amount of sanity checks, and the pretty_generate method for some
199
- # defaults for a pretty output.
199
+ # defaults for pretty output.
200
200
  def generate(obj, opts = nil)
201
- state = SAFE_STATE_PROTOTYPE.dup
201
+ if State === opts
202
+ state, opts = opts, nil
203
+ else
204
+ state = SAFE_STATE_PROTOTYPE.dup
205
+ end
202
206
  if opts
203
207
  if opts.respond_to? :to_hash
204
208
  opts = opts.to_hash
@@ -223,9 +227,13 @@ module JSON
223
227
  # This method disables the checks for circles in Ruby objects.
224
228
  #
225
229
  # *WARNING*: Be careful not to pass any Ruby data structures with circles as
226
- # _obj_ argument, because this will cause JSON to go into an infinite loop.
230
+ # _obj_ argument because this will cause JSON to go into an infinite loop.
227
231
  def fast_generate(obj, opts = nil)
228
- state = FAST_STATE_PROTOTYPE.dup
232
+ if State === opts
233
+ state, opts = opts, nil
234
+ else
235
+ state = FAST_STATE_PROTOTYPE.dup
236
+ end
229
237
  if opts
230
238
  if opts.respond_to? :to_hash
231
239
  opts = opts.to_hash
@@ -249,10 +257,14 @@ module JSON
249
257
  # The returned document is a prettier form of the document returned by
250
258
  # #unparse.
251
259
  #
252
- # The _opts_ argument can be used to configure the generator, see the
260
+ # The _opts_ argument can be used to configure the generator. See the
253
261
  # generate method for a more detailed explanation.
254
262
  def pretty_generate(obj, opts = nil)
255
- state = PRETTY_STATE_PROTOTYPE.dup
263
+ if State === opts
264
+ state, opts = opts, nil
265
+ else
266
+ state = PRETTY_STATE_PROTOTYPE.dup
267
+ end
256
268
  if opts
257
269
  if opts.respond_to? :to_hash
258
270
  opts = opts.to_hash
@@ -273,7 +285,7 @@ module JSON
273
285
  # :startdoc:
274
286
 
275
287
  # Load a ruby data structure from a JSON _source_ and return it. A source can
276
- # either be a string-like object, an IO like object, or an object responding
288
+ # either be a string-like object, an IO-like object, or an object responding
277
289
  # to the read method. If _proc_ was given, it will be called with any nested
278
290
  # Ruby object as an argument recursively in depth first order.
279
291
  #
@@ -291,7 +303,7 @@ module JSON
291
303
  recurse_proc(result, &proc) if proc
292
304
  result
293
305
  end
294
-
306
+
295
307
  # Recursively calls passed _Proc_ if the parsed data structure is an _Array_ or _Hash_
296
308
  def recurse_proc(result, &proc)
297
309
  case result
@@ -312,10 +324,10 @@ module JSON
312
324
  # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns
313
325
  # the result.
314
326
  #
315
- # If anIO (an IO like object or an object that responds to the write method)
327
+ # If anIO (an IO-like object or an object that responds to the write method)
316
328
  # was given, the resulting JSON is written to it.
317
329
  #
318
- # If the number of nested arrays or objects exceeds _limit_ an ArgumentError
330
+ # If the number of nested arrays or objects exceeds _limit_, an ArgumentError
319
331
  # exception is raised. This argument is similar (but not exactly the
320
332
  # same!) to the _limit_ argument in Marshal.dump.
321
333
  #
@@ -360,7 +372,7 @@ module JSON
360
372
  require 'iconv'
361
373
  # Encodes string using _iconv_ library
362
374
  def self.iconv(to, from, string)
363
- Iconv.iconv(to, from, string).first
375
+ Iconv.conv(to, from, string)
364
376
  end
365
377
  end
366
378
 
@@ -396,11 +408,11 @@ module ::Kernel
396
408
  nil
397
409
  end
398
410
 
399
- # If _object_ is string-like parse the string and return the parsed result as
400
- # a Ruby data structure. Otherwise generate a JSON text from the Ruby data
411
+ # If _object_ is string-like, parse the string and return the parsed result as
412
+ # a Ruby data structure. Otherwise, generate a JSON text from the Ruby data
401
413
  # structure object and return it.
402
414
  #
403
- # The _opts_ argument is passed through to generate/parse respectively, see
415
+ # The _opts_ argument is passed through to generate/parse respectively. See
404
416
  # generate and parse for their documentation.
405
417
  def JSON(object, *args)
406
418
  if object.respond_to? :to_str
@@ -413,10 +425,10 @@ end
413
425
 
414
426
  # Extends any Class to include _json_creatable?_ method.
415
427
  class ::Class
416
- # Returns true, if this class can be used to create an instance
428
+ # Returns true if this class can be used to create an instance
417
429
  # from a serialised JSON string. The class has to implement a class
418
- # method _json_create_ that expects a hash as first parameter, which includes
419
- # the required data.
430
+ # method _json_create_ that expects a hash as first parameter. The hash
431
+ # should include the required data.
420
432
  def json_creatable?
421
433
  respond_to?(:json_create)
422
434
  end