yaji 0.0.4 → 0.0.5
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.
- data/HISTORY.markdown +4 -0
- data/ext/yaji/parser_ext.c +5 -1
- data/ext/yaji/parser_ext.h +1 -1
- data/lib/yaji/version.rb +1 -1
- data/test/test_parser.rb +7 -0
- metadata +12 -10
data/HISTORY.markdown
CHANGED
data/ext/yaji/parser_ext.c
CHANGED
@@ -227,6 +227,7 @@ static VALUE rb_yaji_parser_init(int argc, VALUE *argv, VALUE self)
|
|
227
227
|
return self;
|
228
228
|
}
|
229
229
|
|
230
|
+
|
230
231
|
static VALUE rb_yaji_parser_parse(int argc, VALUE* argv, VALUE self)
|
231
232
|
{
|
232
233
|
yajl_status rc;
|
@@ -251,7 +252,9 @@ static VALUE rb_yaji_parser_parse(int argc, VALUE* argv, VALUE self)
|
|
251
252
|
|
252
253
|
p->events = rb_ary_new();
|
253
254
|
rc = yajl_parse_complete(p->handle);
|
254
|
-
|
255
|
+
|
256
|
+
if (rc == yajl_status_error ||
|
257
|
+
(rc == yajl_status_insufficient_data && RSTRING_LEN(rb_funcall(p->chunk, id_strip, 0)) != 0)) {
|
255
258
|
RERAISE_PARSER_ERROR(p);
|
256
259
|
}
|
257
260
|
for (i=0; i<RARRAY_LEN(p->events); i++) {
|
@@ -389,6 +392,7 @@ void Init_parser_ext() {
|
|
389
392
|
id_call = rb_intern("call");
|
390
393
|
id_read = rb_intern("read");
|
391
394
|
id_parse = rb_intern("parse");
|
395
|
+
id_strip = rb_intern("strip");
|
392
396
|
id_perform = rb_intern("perform");
|
393
397
|
id_on_body = rb_intern("on_body");
|
394
398
|
id_bytesize = rb_intern("bytesize");
|
data/ext/yaji/parser_ext.h
CHANGED
@@ -41,7 +41,7 @@ static rb_encoding *utf8_encoding;
|
|
41
41
|
|
42
42
|
static VALUE m_yaji, c_yaji_parser, c_parse_error, c_stringio;
|
43
43
|
|
44
|
-
static ID id_call, id_read, id_parse, id_perform, id_on_body, id_bytesize;
|
44
|
+
static ID id_call, id_read, id_parse, id_perform, id_on_body, id_bytesize, id_strip;
|
45
45
|
static ID sym_allow_comments, sym_check_utf8, sym_symbolize_keys,
|
46
46
|
sym_read_buffer_size, sym_null, sym_boolean, sym_number, sym_string,
|
47
47
|
sym_hash_key, sym_start_hash, sym_end_hash, sym_start_array,
|
data/lib/yaji/version.rb
CHANGED
data/test/test_parser.rb
CHANGED
@@ -165,6 +165,13 @@ class TestParser < MiniTest::Unit::TestCase
|
|
165
165
|
assert_equal expected, objects
|
166
166
|
end
|
167
167
|
|
168
|
+
def test_it_doesnt_raise_exception_on_empty_input
|
169
|
+
YAJI::Parser.new("").parse
|
170
|
+
YAJI::Parser.new(" ").parse
|
171
|
+
YAJI::Parser.new("\n").parse
|
172
|
+
YAJI::Parser.new(" \n\n ").parse
|
173
|
+
end
|
174
|
+
|
168
175
|
protected
|
169
176
|
|
170
177
|
def toys_json_str
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-08-22 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
16
|
-
requirement: &
|
16
|
+
requirement: &14016000 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14016000
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: minitest
|
27
|
-
requirement: &
|
27
|
+
requirement: &14015480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14015480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: curb
|
38
|
-
requirement: &
|
38
|
+
requirement: &14015020 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14015020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ruby-debug19
|
49
|
-
requirement: &
|
49
|
+
requirement: &14014500 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14014500
|
58
58
|
description: YAJI is a ruby wrapper to YAJL providing iterator interface to streaming
|
59
59
|
JSON parser
|
60
60
|
email: info@couchbase.com
|
@@ -105,4 +105,6 @@ rubygems_version: 1.8.7
|
|
105
105
|
signing_key:
|
106
106
|
specification_version: 3
|
107
107
|
summary: Yet another JSON iterator
|
108
|
-
test_files:
|
108
|
+
test_files:
|
109
|
+
- test/fixture.json
|
110
|
+
- test/test_parser.rb
|