yajl-ruby 0.7.1 → 0.7.2
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 +8 -1
- data/MIT-LICENSE +3 -3
- data/README.rdoc +8 -8
- data/VERSION.yml +1 -1
- data/benchmark/subjects/ohai.yml +171 -171
- data/ext/api/yajl_common.h +9 -9
- data/ext/api/yajl_gen.h +10 -10
- data/ext/api/yajl_parse.h +15 -15
- data/ext/yajl.c +8 -8
- data/ext/yajl_alloc.c +6 -6
- data/ext/yajl_alloc.h +6 -6
- data/ext/yajl_buf.c +7 -7
- data/ext/yajl_buf.h +7 -7
- data/ext/yajl_bytestack.h +10 -10
- data/ext/yajl_encode.c +12 -12
- data/ext/yajl_encode.h +6 -6
- data/ext/yajl_ext.c +67 -80
- data/ext/yajl_ext.h +4 -4
- data/ext/yajl_gen.c +16 -16
- data/ext/yajl_lex.c +79 -76
- data/ext/yajl_lex.h +14 -14
- data/ext/yajl_parser.c +34 -34
- data/ext/yajl_parser.h +7 -7
- data/lib/yajl.rb +7 -7
- data/lib/yajl/bzip2/stream_reader.rb +1 -11
- data/lib/yajl/bzip2/stream_writer.rb +1 -1
- data/lib/yajl/deflate/stream_reader.rb +6 -7
- data/lib/yajl/deflate/stream_writer.rb +2 -2
- data/lib/yajl/gzip/stream_reader.rb +0 -10
- data/lib/yajl/http_stream.rb +12 -12
- data/lib/yajl/json_gem/encoding.rb +4 -4
- data/lib/yajl/json_gem/parsing.rb +3 -3
- data/spec/encoding/encoding_spec.rb +23 -23
- data/spec/global/global_spec.rb +8 -8
- data/spec/http/http_delete_spec.rb +13 -13
- data/spec/http/http_error_spec.rb +2 -2
- data/spec/http/http_get_spec.rb +15 -15
- data/spec/http/http_post_spec.rb +12 -12
- data/spec/http/http_put_spec.rb +14 -14
- data/spec/json_gem_compatibility/compatibility_spec.rb +21 -21
- data/spec/parsing/active_support_spec.rb +6 -6
- data/spec/parsing/chunked_spec.rb +12 -12
- data/spec/parsing/fixtures_spec.rb +4 -4
- data/spec/parsing/one_off_spec.rb +9 -9
- data/yajl-ruby.gemspec +3 -3
- metadata +12 -5
@@ -3,13 +3,13 @@ module Yajl
|
|
3
3
|
module Deflate
|
4
4
|
# A wrapper around the Zlib::Deflate class for easier JSON stream parsing
|
5
5
|
class StreamWriter < ::Zlib::Deflate
|
6
|
-
|
6
|
+
|
7
7
|
# A helper method to allow use similar to IO#write
|
8
8
|
def write(str)
|
9
9
|
deflate(str)
|
10
10
|
str.size unless str.nil?
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
# A helper method for one-off encoding to a deflate-compressed stream
|
14
14
|
#
|
15
15
|
# Look up Yajl::Encoder#encode for parameter documentation
|
@@ -4,16 +4,6 @@ module Yajl
|
|
4
4
|
# This is a wrapper around Zlib::GzipReader to allow it's #read method to adhere
|
5
5
|
# to the IO spec, allowing for two parameters (length, and buffer)
|
6
6
|
class StreamReader < ::Zlib::GzipReader
|
7
|
-
|
8
|
-
# Wrapper method to allow use similar to IO#read
|
9
|
-
def read(len=nil, buffer=nil)
|
10
|
-
unless buffer.nil?
|
11
|
-
buffer.replace super(len)
|
12
|
-
return buffer
|
13
|
-
end
|
14
|
-
super(len)
|
15
|
-
end
|
16
|
-
|
17
7
|
# Helper method for one-off parsing from a gzip-compressed stream
|
18
8
|
#
|
19
9
|
# See Yajl::Parser#parse for parameter documentation
|
data/lib/yajl/http_stream.rb
CHANGED
@@ -7,24 +7,24 @@ module Yajl
|
|
7
7
|
# This module is for making HTTP requests to which the response bodies (and possibly requests in the near future)
|
8
8
|
# are streamed directly into Yajl.
|
9
9
|
class HttpStream
|
10
|
-
|
10
|
+
|
11
11
|
# This Exception is thrown when an HTTP response isn't in ALLOWED_MIME_TYPES
|
12
12
|
# and therefore cannot be parsed.
|
13
13
|
class InvalidContentType < Exception; end
|
14
14
|
class HttpError < StandardError
|
15
|
-
|
15
|
+
|
16
16
|
attr_reader :message, :headers
|
17
|
-
|
17
|
+
|
18
18
|
def initialize(message, headers)
|
19
19
|
@message = message
|
20
20
|
@headers = headers
|
21
21
|
end
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
# The mime-type we expect the response to be. If it's anything else, we can't parse it
|
25
25
|
# and an InvalidContentType is raised.
|
26
26
|
ALLOWED_MIME_TYPES = ["application/json", "text/plain"]
|
27
|
-
|
27
|
+
|
28
28
|
# Makes a basic HTTP GET request to the URI provided
|
29
29
|
def self.get(uri, opts = {}, &block)
|
30
30
|
request("GET", uri, opts, &block)
|
@@ -42,7 +42,7 @@ module Yajl
|
|
42
42
|
def self.post(uri, body, opts = {}, &block)
|
43
43
|
request("POST", uri, opts.merge({:body => body}), &block)
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
# Makes a basic HTTP POST request to the URI provided allowing the user to terminate the connection
|
47
47
|
def post(uri, body, opts = {}, &block)
|
48
48
|
initialize_socket(uri, opts)
|
@@ -55,7 +55,7 @@ module Yajl
|
|
55
55
|
def self.put(uri, body, opts = {}, &block)
|
56
56
|
request("PUT", uri, opts.merge({:body => body}), &block)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
# Makes a basic HTTP PUT request to the URI provided allowing the user to terminate the connection
|
60
60
|
def put(uri, body, opts = {}, &block)
|
61
61
|
initialize_socket(uri, opts)
|
@@ -82,13 +82,13 @@ module Yajl
|
|
82
82
|
@intentional_termination = true
|
83
83
|
@socket.close
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
protected
|
87
87
|
def self.request(method, uri, opts = {}, &block)
|
88
88
|
if uri.is_a?(String)
|
89
89
|
uri = URI.parse(uri)
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
user_agent = opts.has_key?('User-Agent') ? opts.delete(['User-Agent']) : "Yajl::HttpStream #{Yajl::VERSION}"
|
93
93
|
if method == "POST" || method == "PUT"
|
94
94
|
content_type = opts.has_key?('Content-Type') ? opts.delete(['Content-Type']) : "application/x-www-form-urlencoded"
|
@@ -140,11 +140,11 @@ module Yajl
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
143
|
-
|
143
|
+
|
144
144
|
if (response_head[:code] != 200)
|
145
|
-
raise HttpError.new("Code 200 expected got #{response_head[:code]}", response_head[:headers])
|
145
|
+
raise HttpError.new("Code 200 expected got #{response_head[:code]}", response_head[:headers])
|
146
146
|
end
|
147
|
-
|
147
|
+
|
148
148
|
parser = Yajl::Parser.new(opts)
|
149
149
|
parser.on_parse_complete = block if block_given?
|
150
150
|
if response_head[:headers]["Transfer-Encoding"] == 'chunked'
|
@@ -8,14 +8,14 @@ Yajl::Encoder.enable_json_gem_compatability
|
|
8
8
|
# Our fallback to_json definition
|
9
9
|
class Object
|
10
10
|
def to_json(*args, &block)
|
11
|
-
|
11
|
+
to_s.dump
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
module JSON
|
16
16
|
class JSONError < StandardError; end unless defined?(JSON::JSONError)
|
17
17
|
class GeneratorError < JSONError; end unless defined?(JSON::GeneratorError)
|
18
|
-
|
18
|
+
|
19
19
|
def self.generate(obj, opts={})
|
20
20
|
begin
|
21
21
|
options_map = {}
|
@@ -28,7 +28,7 @@ module JSON
|
|
28
28
|
raise JSON::GeneratorError, e.message
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
def self.pretty_generate(obj, opts={})
|
33
33
|
begin
|
34
34
|
options_map = {}
|
@@ -39,7 +39,7 @@ module JSON
|
|
39
39
|
raise JSON::GeneratorError, e.message
|
40
40
|
end
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
def self.dump(obj, io=nil, *args)
|
44
44
|
begin
|
45
45
|
Yajl::Encoder.encode(obj, io)
|
@@ -4,11 +4,11 @@ require 'yajl' unless defined?(Yajl::Parser)
|
|
4
4
|
module JSON
|
5
5
|
class JSONError < StandardError; end unless defined?(JSON::JSONError)
|
6
6
|
class ParserError < JSONError; end unless defined?(JSON::ParserError)
|
7
|
-
|
7
|
+
|
8
8
|
def self.default_options
|
9
9
|
@default_options ||= {:symbolize_keys => false}
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def self.parse(str, opts=JSON.default_options)
|
13
13
|
begin
|
14
14
|
Yajl::Parser.parse(str, opts)
|
@@ -16,7 +16,7 @@ module JSON
|
|
16
16
|
raise JSON::ParserError, e.message
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def self.load(input, *args)
|
21
21
|
begin
|
22
22
|
Yajl::Parser.parse(input, default_options)
|
@@ -3,13 +3,13 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
|
|
3
3
|
|
4
4
|
class Dummy2
|
5
5
|
def to_json
|
6
|
-
"hawtness"
|
6
|
+
"hawtness".dump
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "Yajl JSON encoder" do
|
11
11
|
FILES = Dir[File.dirname(__FILE__)+'/../../benchmark/subjects/*.json']
|
12
|
-
|
12
|
+
|
13
13
|
FILES.each do |file|
|
14
14
|
it "should encode #{File.basename(file)} to an IO" do
|
15
15
|
# we don't care about testing the stream subject as it has multiple JSON strings in it
|
@@ -27,7 +27,7 @@ describe "Yajl JSON encoder" do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
FILES.each do |file|
|
32
32
|
it "should encode #{File.basename(file)} and return a String" do
|
33
33
|
# we don't care about testing the stream subject as it has multiple JSON strings in it
|
@@ -42,7 +42,7 @@ describe "Yajl JSON encoder" do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
FILES.each do |file|
|
47
47
|
it "should encode #{File.basename(file)} call the passed block, passing it a String" do
|
48
48
|
# we don't care about testing the stream subject as it has multiple JSON strings in it
|
@@ -60,7 +60,7 @@ describe "Yajl JSON encoder" do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
it "should encode with :pretty turned on and a single space indent, to an IO" do
|
65
65
|
output = "{\n \"foo\": 1234\n}"
|
66
66
|
obj = {:foo => 1234}
|
@@ -70,7 +70,7 @@ describe "Yajl JSON encoder" do
|
|
70
70
|
io.rewind
|
71
71
|
io.read.should == output
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
it "should encode with :pretty turned on and a single space indent, and return a String" do
|
75
75
|
output = "{\n \"foo\": 1234\n}"
|
76
76
|
obj = {:foo => 1234}
|
@@ -78,7 +78,7 @@ describe "Yajl JSON encoder" do
|
|
78
78
|
output = encoder.encode(obj)
|
79
79
|
output.should == output
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
it "should encode with :pretty turned on and a tab character indent, to an IO" do
|
83
83
|
output = "{\n\t\"foo\": 1234\n}"
|
84
84
|
obj = {:foo => 1234}
|
@@ -88,7 +88,7 @@ describe "Yajl JSON encoder" do
|
|
88
88
|
io.rewind
|
89
89
|
io.read.should == output
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
it "should encode with :pretty turned on and a tab character indent, and return a String" do
|
93
93
|
output = "{\n\t\"foo\": 1234\n}"
|
94
94
|
obj = {:foo => 1234}
|
@@ -96,7 +96,7 @@ describe "Yajl JSON encoder" do
|
|
96
96
|
output = encoder.encode(obj)
|
97
97
|
output.should == output
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
it "should encode with it's class method with :pretty and a tab character indent options set, to an IO" do
|
101
101
|
output = "{\n\t\"foo\": 1234\n}"
|
102
102
|
obj = {:foo => 1234}
|
@@ -105,14 +105,14 @@ describe "Yajl JSON encoder" do
|
|
105
105
|
io.rewind
|
106
106
|
io.read.should == output
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
it "should encode with it's class method with :pretty and a tab character indent options set, and return a String" do
|
110
110
|
output = "{\n\t\"foo\": 1234\n}"
|
111
111
|
obj = {:foo => 1234}
|
112
112
|
output = Yajl::Encoder.encode(obj, :pretty => true, :indent => "\t")
|
113
113
|
output.should == output
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
it "should encode with it's class method with :pretty and a tab character indent options set, to a block" do
|
117
117
|
output = "{\n\t\"foo\": 1234\n}"
|
118
118
|
obj = {:foo => 1234}
|
@@ -122,7 +122,7 @@ describe "Yajl JSON encoder" do
|
|
122
122
|
end
|
123
123
|
output.should == output
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
it "should encode multiple objects into a single stream, to an IO" do
|
127
127
|
io = StringIO.new
|
128
128
|
obj = {:foo => 1234}
|
@@ -134,7 +134,7 @@ describe "Yajl JSON encoder" do
|
|
134
134
|
output = "{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}"
|
135
135
|
io.read.should == output
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
it "should encode multiple objects into a single stream, and return a String" do
|
139
139
|
obj = {:foo => 1234}
|
140
140
|
encoder = Yajl::Encoder.new
|
@@ -145,37 +145,37 @@ describe "Yajl JSON encoder" do
|
|
145
145
|
output = "{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}{\"foo\":1234}"
|
146
146
|
json_output.should == output
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
it "should encode all map keys as strings" do
|
150
150
|
Yajl::Encoder.encode({1=>1}).should eql("{\"1\":1}")
|
151
151
|
end
|
152
|
-
|
152
|
+
|
153
153
|
it "should check for and call #to_json if it exists on custom objects" do
|
154
154
|
d = Dummy2.new
|
155
155
|
Yajl::Encoder.encode({:foo => d}).should eql('{"foo":"hawtness"}')
|
156
156
|
end
|
157
|
-
|
157
|
+
|
158
158
|
it "should encode a hash where the key and value can be symbols" do
|
159
159
|
Yajl::Encoder.encode({:foo => :bar}).should eql('{"foo":"bar"}')
|
160
160
|
end
|
161
|
-
|
161
|
+
|
162
162
|
it "should encode using a newline or nil terminator" do
|
163
163
|
Yajl::Encoder.new(:terminator => "\n").encode({:foo => :bar}).should eql("{\"foo\":\"bar\"}\n")
|
164
164
|
Yajl::Encoder.new(:terminator => nil).encode({:foo => :bar}).should eql("{\"foo\":\"bar\"}")
|
165
165
|
end
|
166
|
-
|
166
|
+
|
167
167
|
it "should encode using a newline or nil terminator, to an IO" do
|
168
168
|
s = StringIO.new
|
169
169
|
Yajl::Encoder.new(:terminator => "\n").encode({:foo => :bar}, s)
|
170
170
|
s.rewind
|
171
171
|
s.read.should eql("{\"foo\":\"bar\"}\n")
|
172
|
-
|
172
|
+
|
173
173
|
s = StringIO.new
|
174
174
|
Yajl::Encoder.new(:terminator => nil).encode({:foo => :bar}, s)
|
175
175
|
s.rewind
|
176
176
|
s.read.should eql("{\"foo\":\"bar\"}")
|
177
177
|
end
|
178
|
-
|
178
|
+
|
179
179
|
it "should encode using a newline or nil terminator, using a block" do
|
180
180
|
s = StringIO.new
|
181
181
|
Yajl::Encoder.new(:terminator => "\n").encode({:foo => :bar}) do |chunk|
|
@@ -183,7 +183,7 @@ describe "Yajl JSON encoder" do
|
|
183
183
|
end
|
184
184
|
s.rewind
|
185
185
|
s.read.should eql("{\"foo\":\"bar\"}\n")
|
186
|
-
|
186
|
+
|
187
187
|
s = StringIO.new
|
188
188
|
nilpassed = false
|
189
189
|
Yajl::Encoder.new(:terminator => nil).encode({:foo => :bar}) do |chunk|
|
@@ -194,13 +194,13 @@ describe "Yajl JSON encoder" do
|
|
194
194
|
s.rewind
|
195
195
|
s.read.should eql("{\"foo\":\"bar\"}")
|
196
196
|
end
|
197
|
-
|
197
|
+
|
198
198
|
it "should not encode NaN" do
|
199
199
|
lambda {
|
200
200
|
Yajl::Encoder.encode(0.0/0.0)
|
201
201
|
}.should raise_error(Yajl::EncodeError)
|
202
202
|
end
|
203
|
-
|
203
|
+
|
204
204
|
it "should not encode Infinity or -Infinity" do
|
205
205
|
lambda {
|
206
206
|
Yajl::Encoder.encode(1.0/0.0)
|
data/spec/global/global_spec.rb
CHANGED
@@ -10,41 +10,41 @@ describe "Yajl" do
|
|
10
10
|
it "should be able to encode to a string" do
|
11
11
|
Yajl.dump({:a => 1234}).should eql('{"a":1234}')
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
it "should be able to encode to an IO" do
|
15
15
|
io = StringIO.new
|
16
16
|
Yajl.dump({:a => 1234}, io)
|
17
17
|
io.rewind
|
18
|
-
io.read.should eql('{"a":1234}')
|
18
|
+
io.read.should eql('{"a":1234}')
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should be able to encode with a block supplied" do
|
22
22
|
Yajl.dump({:a => 1234}) do |chunk|
|
23
23
|
chunk.should eql('{"a":1234}')
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
context "load" do
|
29
29
|
it "should exist as a class-method" do
|
30
30
|
Yajl.should respond_to(:load)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should be able to parse from a string" do
|
34
34
|
Yajl.load('{"a":1234}').should eql({"a" => 1234})
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should be able to parse from an IO" do
|
38
38
|
io = StringIO.new('{"a":1234}')
|
39
39
|
Yajl.load(io).should eql({"a" => 1234})
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "should be able to parse from a string with a block supplied" do
|
43
43
|
Yajl.load('{"a":1234}') do |h|
|
44
44
|
h.should eql({"a" => 1234})
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
it "should be able to parse from an IO with a block supplied" do
|
49
49
|
io = StringIO.new('{"a":1234}')
|
50
50
|
Yajl.load(io) do |h|
|
@@ -22,31 +22,31 @@ describe "Yajl HTTP DELETE request" do
|
|
22
22
|
raw = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.raw.dump'), 'r')
|
23
23
|
parse_off_headers(raw)
|
24
24
|
@template_hash = Yajl::Parser.parse(raw)
|
25
|
-
|
25
|
+
|
26
26
|
raw.rewind
|
27
27
|
parse_off_headers(raw)
|
28
28
|
@template_hash_symbolized = Yajl::Parser.parse(raw, :symbolize_keys => true)
|
29
|
-
|
29
|
+
|
30
30
|
@deflate = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.deflate.dump'), 'r')
|
31
31
|
@gzip = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.gzip.dump'), 'r')
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
after(:each) do
|
35
35
|
@file_path = nil
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
def prepare_mock_request_dump(format=:raw)
|
39
39
|
@request = File.new(File.expand_path(File.dirname(__FILE__) + "/fixtures/http.#{format}.dump"), 'r')
|
40
40
|
@uri = 'file://'+File.expand_path(File.dirname(__FILE__) + "/fixtures/http/http.#{format}.dump")
|
41
41
|
TCPSocket.should_receive(:new).and_return(@request)
|
42
42
|
@request.should_receive(:write)
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should parse a raw response" do
|
46
46
|
prepare_mock_request_dump :raw
|
47
47
|
@template_hash.should == Yajl::HttpStream.delete(@uri)
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
it "should parse a raw response using instance method" do
|
51
51
|
prepare_mock_request_dump :raw
|
52
52
|
@uri.should_receive(:host)
|
@@ -54,12 +54,12 @@ describe "Yajl HTTP DELETE request" do
|
|
54
54
|
stream = Yajl::HttpStream.new
|
55
55
|
@template_hash.should == stream.delete(@uri)
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
it "should parse a raw response and symbolize keys" do
|
59
59
|
prepare_mock_request_dump :raw
|
60
60
|
@template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
if defined?(Yajl::Bzip2::StreamReader)
|
64
64
|
it "should parse a bzip2 compressed response" do
|
65
65
|
prepare_mock_request_dump :bzip2
|
@@ -71,27 +71,27 @@ describe "Yajl HTTP DELETE request" do
|
|
71
71
|
@template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
|
72
72
|
end
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
it "should parse a deflate compressed response" do
|
76
76
|
prepare_mock_request_dump :deflate
|
77
77
|
@template_hash.should == Yajl::HttpStream.delete(@uri)
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should parse a deflate compressed response and symbolize keys" do
|
81
81
|
prepare_mock_request_dump :deflate
|
82
82
|
@template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
it "should parse a gzip compressed response" do
|
86
86
|
prepare_mock_request_dump :gzip
|
87
87
|
@template_hash.should == Yajl::HttpStream.delete(@uri)
|
88
88
|
end
|
89
|
-
|
89
|
+
|
90
90
|
it "should parse a gzip compressed response and symbolize keys" do
|
91
91
|
prepare_mock_request_dump :gzip
|
92
92
|
@template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
it "should raise when an HTTP code that isn't 200 is returned" do
|
96
96
|
prepare_mock_request_dump :error
|
97
97
|
lambda { Yajl::HttpStream.delete(@uri) }.should raise_exception(Yajl::HttpStream::HttpError)
|