on master help sign in
Merge pull request #32 from sriedel/sr/add_ruby_parsers

Sr/add ruby parsers

commit7a3bd56e9f99f4acf43c03456711d8225837984e authorNicolas Seriot <nicolas@seriot.ch> dateFri 28 Oct 2016, 09:45 (10 years ago) parentf61f87a58db7f3
4 files changed+91−2
parsers/test_oj_compat.rb+25 parsers/test_oj_strict.rb+25 parsers/test_yajl.rb+24 run_tests.py+17−2
parsers/test_oj_compat.rbnew file+25
@@ -0,0 +1,25 @@
1+#!/usr/bin/env ruby
2+
3+require 'oj'
4+
5+f = ARGV[0]
6+
7+o = nil
8+
9+Oj.default_options = { :mode => :compat }
10+
11+begin
12+ puts(f)
13+ json = File.read(f)
14+ o = Oj.load( json )
15+ p o
16+
17+ if o == nil
18+ exit 1
19+ else
20+ exit 0
21+ end
22+rescue JSON::ParserError => e
23+ puts(e)
24+ exit 1
25+end
parsers/test_oj_strict.rbnew file+25
@@ -0,0 +1,25 @@
1+#!/usr/bin/env ruby
2+
3+require 'oj'
4+
5+f = ARGV[0]
6+
7+o = nil
8+
9+Oj.default_options = { :mode => :strict }
10+
11+begin
12+ puts(f)
13+ json = File.read(f)
14+ o = Oj.load( json )
15+ p o
16+
17+ if o == nil
18+ exit 1
19+ else
20+ exit 0
21+ end
22+rescue JSON::ParserError => e
23+ puts(e)
24+ exit 1
25+end
parsers/test_yajl.rbnew file+24
@@ -0,0 +1,24 @@
1+#!/usr/bin/env ruby
2+
3+require 'yajl'
4+
5+f = ARGV[0]
6+
7+o = nil
8+
9+begin
10+ puts(f)
11+ json = File.read(f)
12+ parser = Yajl::Parser.new
13+ o = parser.parse( json )
14+ p o
15+
16+ if o == nil
17+ exit 1
18+ else
19+ exit 0
20+ end
21+rescue JSON::ParserError => e
22+ puts(e)
23+ exit 1
24+end
run_tests.py+17−2
@@ -69,12 +69,27 @@ programs = {
6969 "Ruby":
7070 {
7171 "url":"",
72− "commands":["/usr/bin/ruby", os.path.join(PARSERS_DIR, "test_json.rb")]
72+ "commands":["/usr/bin/env", "ruby", os.path.join(PARSERS_DIR, "test_json.rb")]
7373 },
7474 "Ruby regex":
7575 {
7676 "url":"",
77− "commands":["/usr/bin/ruby", os.path.join(PARSERS_DIR, "test_json_re.rb")]
77+ "commands":["/usr/bin/env", "ruby", os.path.join(PARSERS_DIR, "test_json_re.rb")]
78+ },
79+ "Ruby Yajl":
80+ {
81+ "url":"",
82+ "commands":["/usr/bin/env", "ruby", os.path.join(PARSERS_DIR, "test_yajl.rb")]
83+ },
84+ "Ruby Oj (strict mode)":
85+ {
86+ "url":"",
87+ "commands":["/usr/bin/env", "ruby", os.path.join(PARSERS_DIR, "test_oj_strict.rb")]
88+ },
89+ "Ruby Oj (compat mode)":
90+ {
91+ "url":"",
92+ "commands":["/usr/bin/env", "ruby", os.path.join(PARSERS_DIR, "test_oj_compat.rb")]
7893 },
7994 "Crystal":
8095 {