yajl-ruby 0.6.4 → 0.6.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yajl-ruby might be problematic. Click here for more details.
- data/CHANGELOG.md +5 -0
- data/VERSION.yml +2 -2
- data/ext/yajl_ext.c +11 -4
- data/spec/parsing/one_off_spec.rb +7 -1
- data/yajl-ruby.gemspec +2 -2
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.6.5 (November 13th, 2009)
|
4
|
+
* optimize symbol creation while symbolize_keys is turned on
|
5
|
+
* fix for 32bit integer conversion into ruby
|
6
|
+
|
3
7
|
## 0.6.4 (November 4th, 2009)
|
4
8
|
* All specs pass on Rubinius :)
|
9
|
+
* Added Yajl.load and Yajl.dump for compatibility with other various data format API's in ruby
|
5
10
|
* Fixed a bug in Yajl::Encoder which allowed direct, unescaped encoding of NaN, Infinity and -Infinity.
|
6
11
|
It will now properly throw a Yajl::EncodeError exception if either of these values are found unescaped.
|
7
12
|
* Update bundled Yajl library to 1.0.7
|
data/VERSION.yml
CHANGED
data/ext/yajl_ext.c
CHANGED
@@ -198,9 +198,9 @@ static int yajl_found_number(void * ctx, const char * numberVal, unsigned int nu
|
|
198
198
|
cSubString[numberLen] = '\0';
|
199
199
|
|
200
200
|
if (strchr(cSubString, '.') != NULL || strchr(cSubString, 'e') != NULL || strchr(cSubString, 'E') != NULL) {
|
201
|
-
yajl_set_static_value(ctx, rb_float_new(
|
201
|
+
yajl_set_static_value(ctx, rb_float_new(rb_cstr_to_dbl(cSubString, 10)));
|
202
202
|
} else {
|
203
|
-
yajl_set_static_value(ctx,
|
203
|
+
yajl_set_static_value(ctx, rb_cstr2inum(cSubString, 10));
|
204
204
|
}
|
205
205
|
yajl_check_and_fire_callback(ctx);
|
206
206
|
free(cSubString);
|
@@ -216,11 +216,18 @@ static int yajl_found_string(void * ctx, const unsigned char * stringVal, unsign
|
|
216
216
|
static int yajl_found_hash_key(void * ctx, const unsigned char * stringVal, unsigned int stringLen) {
|
217
217
|
struct yajl_parser_wrapper * wrapper;
|
218
218
|
GetParser((VALUE)ctx, wrapper);
|
219
|
-
VALUE keyStr
|
219
|
+
VALUE keyStr;
|
220
220
|
|
221
221
|
if (wrapper->symbolizeKeys) {
|
222
|
-
|
222
|
+
char * cSubString = ALLOC_N(char, stringLen+1);
|
223
|
+
if (cSubString) {
|
224
|
+
memcpy(cSubString, stringVal, stringLen);
|
225
|
+
}
|
226
|
+
cSubString[stringLen] = '\0';
|
227
|
+
yajl_set_static_value(ctx, ID2SYM(rb_intern(cSubString)));
|
228
|
+
free(cSubString);
|
223
229
|
} else {
|
230
|
+
keyStr = rb_str_new((const char *)stringVal, stringLen);
|
224
231
|
yajl_set_static_value(ctx, keyStr);
|
225
232
|
}
|
226
233
|
yajl_check_and_fire_callback(ctx);
|
@@ -32,7 +32,7 @@ describe "One-off JSON examples" do
|
|
32
32
|
|
33
33
|
it "should parse invalid UTF8 with :check_utf8 set to false" do
|
34
34
|
parser = Yajl::Parser.new(:check_utf8 => false)
|
35
|
-
|
35
|
+
parser.parse("[\"#{"\201\203"}\"]").inspect
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should parse using it's class method, from an IO" do
|
@@ -55,4 +55,10 @@ describe "One-off JSON examples" do
|
|
55
55
|
end
|
56
56
|
output.should == {"key" => 1234}
|
57
57
|
end
|
58
|
+
|
59
|
+
it "should parse numbers greater than 2,147,483,648" do
|
60
|
+
Yajl::Parser.parse("{\"id\": 2147483649}").should eql({"id" => 2147483649})
|
61
|
+
Yajl::Parser.parse("{\"id\": 5687389800}").should eql({"id" => 5687389800})
|
62
|
+
Yajl::Parser.parse("{\"id\": 1046289770033519442869495707521600000000}").should eql({"id" => 1046289770033519442869495707521600000000})
|
63
|
+
end
|
58
64
|
end
|
data/yajl-ruby.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{yajl-ruby}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian Lopez", "Lloyd Hilaiel"]
|
12
|
-
s.date = %q{2009-11-
|
12
|
+
s.date = %q{2009-11-13}
|
13
13
|
s.email = %q{seniorlopez@gmail.com}
|
14
14
|
s.extensions = ["ext/extconf.rb"]
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yajl-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Lopez
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-11-
|
13
|
+
date: 2009-11-13 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|