yajl-ruby 0.5.12 → 0.6.0

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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0 (August 19th, 2009)
4
+ * Added POST, PUT and DELETE support to Yajl::HttpStream
5
+ ** POST support initially contributed by jdg (http://github.com/jdg) - Although oortle (http://github.com/oortle) coded it up in a fork with it as well.
6
+
3
7
  ## 0.5.12 (July 31st, 2009)
4
8
  * Add another option that can be passed to Yajl::Encoder's constructor (:terminator) to allow the caller some control over
5
9
  when a full JSON string has been generated by the encoder. More information on it's use in the README
data/README.rdoc CHANGED
@@ -180,7 +180,7 @@ Using EventMachine and you want to encode and send in chunks?
180
180
  #
181
181
  # Send our MOTD and status
182
182
  @encoder.encode(@motd) do |chunk|
183
- if chunk.nil?
183
+ if chunk.nil? # got our terminator, encoding is done
184
184
  close_connection_after_writing
185
185
  else
186
186
  send_data(chunk)
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 5
3
- :patch: 12
2
+ :minor: 6
3
+ :patch: 0
4
4
  :major: 0
data/lib/yajl.rb CHANGED
@@ -13,7 +13,7 @@ require 'yajl_ext'
13
13
  #
14
14
  # Ruby bindings to the excellent Yajl (Yet Another JSON Parser) ANSI C library.
15
15
  module Yajl
16
- VERSION = "0.5.12"
16
+ VERSION = "0.6.0"
17
17
 
18
18
  class Parser
19
19
  # A helper method for parse-and-forget use-cases
@@ -16,86 +16,112 @@ module Yajl
16
16
  ALLOWED_MIME_TYPES = ["application/json", "text/plain"]
17
17
 
18
18
  # Makes a basic HTTP GET request to the URI provided
19
- # 1. a raw socket is opened to the server/host provided
20
- # 2. the request is made using HTTP/1.0, Accept-encoding: gzip (deflate support coming soon, too)
21
- # 3. the response is read until the end of the headers
22
- # 4. the _socket itself_ is passed directly to Yajl, for direct parsing off the stream; As it's being received over the wire!
23
19
  def self.get(uri, opts = {}, &block)
24
- user_agent = opts.has_key?('User-Agent') ? opts.delete(['User-Agent']) : "Yajl::HttpStream #{Yajl::VERSION}"
25
-
26
- socket = TCPSocket.new(uri.host, uri.port)
27
- request = "GET #{uri.path}#{uri.query ? "?"+uri.query : nil} HTTP/1.1\r\n"
28
- request << "Host: #{uri.host}\r\n"
29
- request << "Authorization: Basic #{[uri.userinfo].pack('m')}\r\n" unless uri.userinfo.nil?
30
- request << "User-Agent: #{user_agent}\r\n"
31
- request << "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
32
- request << "Connection: close\r\n"
33
- encodings = []
34
- encodings << "bzip2" if defined?(Yajl::Bzip2)
35
- encodings << "gzip" if defined?(Yajl::Gzip)
36
- encodings << "deflate" if defined?(Yajl::Deflate)
37
- request << "Accept-Encoding: #{encodings.join(',')}\r\n" if encodings.any?
38
- request << "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"
39
- request << "\r\n\r\n"
40
- socket.write(request)
41
- response_head = {}
42
- response_head[:headers] = {}
43
-
44
- socket.each_line do |line|
45
- if line == "\r\n" # end of the headers
46
- break
47
- else
48
- header = line.split(": ")
49
- if header.size == 1
50
- header = header[0].split(" ")
51
- response_head[:version] = header[0]
52
- response_head[:code] = header[1].to_i
53
- response_head[:msg] = header[2]
54
- # this is the response code line
55
- else
56
- response_head[:headers][header[0]] = header[1].strip
57
- end
20
+ request("GET", uri, opts, &block)
21
+ end
22
+
23
+ # Makes a basic HTTP POST request to the URI provided
24
+ def self.post(uri, body, opts = {}, &block)
25
+ request("POST", uri, opts.merge({:body => body}), &block)
26
+ end
27
+
28
+ # Makes a basic HTTP PUT request to the URI provided
29
+ def self.put(uri, body, opts = {}, &block)
30
+ request("PUT", uri, opts.merge({:body => body}), &block)
31
+ end
32
+
33
+ # Makes a basic HTTP DELETE request to the URI provided
34
+ def self.delete(uri, opts = {}, &block)
35
+ request("DELETE", uri, opts, &block)
36
+ end
37
+
38
+ protected
39
+ def self.request(method, uri, opts = {}, &block)
40
+ user_agent = opts.has_key?('User-Agent') ? opts.delete(['User-Agent']) : "Yajl::HttpStream #{Yajl::VERSION}"
41
+ if method == "POST" || method == "PUT"
42
+ content_type = opts.has_key?('Content-Type') ? opts.delete(['Content-Type']) : "application/x-www-form-urlencoded"
43
+ body = opts.delete(:body)
58
44
  end
59
- end
60
- parser = Yajl::Parser.new(opts)
61
- if response_head[:headers]["Transfer-Encoding"] == 'chunked'
62
- if block_given?
63
- parser.on_parse_complete = block
64
- chunkLeft = 0
65
- while !socket.eof? && (size = socket.gets.hex)
66
- next if size == 0
67
- json = socket.read(size)
68
- chunkLeft = size-json.size
69
- if chunkLeft == 0
70
- parser << json
45
+
46
+ socket = TCPSocket.new(uri.host, uri.port)
47
+ request = "#{method} #{uri.path}#{uri.query ? "?"+uri.query : nil} HTTP/1.1\r\n"
48
+ request << "Host: #{uri.host}\r\n"
49
+ request << "Authorization: Basic #{[uri.userinfo].pack('m').strip!}\r\n" unless uri.userinfo.nil?
50
+ request << "User-Agent: #{user_agent}\r\n"
51
+ request << "Accept: */*\r\n"
52
+ if method == "POST" || method == "PUT"
53
+ request << "Content-Length: #{body.length}\r\n"
54
+ request << "Content-Type: #{content_type}\r\n"
55
+ end
56
+ request << "Connection: close\r\n"
57
+ encodings = []
58
+ encodings << "bzip2" if defined?(Yajl::Bzip2)
59
+ encodings << "gzip" if defined?(Yajl::Gzip)
60
+ encodings << "deflate" if defined?(Yajl::Deflate)
61
+ request << "Accept-Encoding: #{encodings.join(',')}\r\n" if encodings.any?
62
+ request << "Accept-Charset: utf-8\r\n\r\n"
63
+ if method == "POST" || method == "PUT"
64
+ request << body
65
+ end
66
+ socket.write(request)
67
+ response_head = {}
68
+ response_head[:headers] = {}
69
+
70
+ socket.each_line do |line|
71
+ if line == "\r\n" # end of the headers
72
+ break
73
+ else
74
+ header = line.split(": ")
75
+ if header.size == 1
76
+ header = header[0].split(" ")
77
+ response_head[:version] = header[0]
78
+ response_head[:code] = header[1].to_i
79
+ response_head[:msg] = header[2]
80
+ # this is the response code line
71
81
  else
72
- # received only part of the chunk, grab the rest
73
- parser << socket.read(chunkLeft)
82
+ response_head[:headers][header[0]] = header[1].strip
74
83
  end
75
84
  end
76
- else
77
- raise Exception, "Chunked responses detected, but no block given to handle the chunks."
78
85
  end
79
- else
80
- content_type = response_head[:headers]["Content-Type"].split(';')
81
- content_type = content_type.first
82
- if ALLOWED_MIME_TYPES.include?(content_type)
83
- case response_head[:headers]["Content-Encoding"]
84
- when "gzip"
85
- return Yajl::Gzip::StreamReader.parse(socket, opts)
86
- when "deflate"
87
- return Yajl::Deflate::StreamReader.parse(socket, opts.merge({:deflate_options => -Zlib::MAX_WBITS}))
88
- when "bzip2"
89
- return Yajl::Bzip2::StreamReader.parse(socket, opts)
86
+ parser = Yajl::Parser.new(opts)
87
+ if response_head[:headers]["Transfer-Encoding"] == 'chunked'
88
+ if block_given?
89
+ parser.on_parse_complete = block
90
+ chunkLeft = 0
91
+ while !socket.eof? && (size = socket.gets.hex)
92
+ next if size == 0
93
+ json = socket.read(size)
94
+ chunkLeft = size-json.size
95
+ if chunkLeft == 0
96
+ parser << json
97
+ else
98
+ # received only part of the chunk, grab the rest
99
+ parser << socket.read(chunkLeft)
100
+ end
101
+ end
90
102
  else
91
- return Yajl::Parser.new(opts).parse(socket)
103
+ raise Exception, "Chunked responses detected, but no block given to handle the chunks."
92
104
  end
93
105
  else
94
- raise InvalidContentType, "The response MIME type #{content_type}"
106
+ content_type = response_head[:headers]["Content-Type"].split(';')
107
+ content_type = content_type.first
108
+ if ALLOWED_MIME_TYPES.include?(content_type)
109
+ case response_head[:headers]["Content-Encoding"]
110
+ when "gzip"
111
+ return Yajl::Gzip::StreamReader.parse(socket, opts)
112
+ when "deflate"
113
+ return Yajl::Deflate::StreamReader.parse(socket, opts.merge({:deflate_options => -Zlib::MAX_WBITS}))
114
+ when "bzip2"
115
+ return Yajl::Bzip2::StreamReader.parse(socket, opts)
116
+ else
117
+ return Yajl::Parser.new(opts).parse(socket)
118
+ end
119
+ else
120
+ raise InvalidContentType, "The response MIME type #{content_type}"
121
+ end
95
122
  end
123
+ ensure
124
+ socket.close
96
125
  end
97
- ensure
98
- socket.close
99
- end
100
126
  end
101
127
  end
@@ -0,0 +1,85 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
+ require 'yajl/bzip2'
4
+ require 'yajl/gzip'
5
+ require 'yajl/deflate'
6
+ require 'yajl/http_stream'
7
+
8
+ def parse_off_headers(io)
9
+ io.each_line do |line|
10
+ if line == "\r\n" # end of the headers
11
+ break
12
+ end
13
+ end
14
+ end
15
+
16
+ describe "Yajl HTTP DELETE request" do
17
+ before(:all) do
18
+ raw = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.raw.dump'), 'r')
19
+ parse_off_headers(raw)
20
+ @template_hash = Yajl::Parser.parse(raw)
21
+
22
+ raw.rewind
23
+ parse_off_headers(raw)
24
+ @template_hash_symbolized = Yajl::Parser.parse(raw, :symbolize_keys => true)
25
+
26
+ @deflate = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.deflate.dump'), 'r')
27
+ @gzip = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.gzip.dump'), 'r')
28
+ end
29
+
30
+ after(:each) do
31
+ @file_path = nil
32
+ end
33
+
34
+ def prepare_mock_request_dump(format=:raw)
35
+ @request = File.new(File.expand_path(File.dirname(__FILE__) + "/fixtures/http.#{format}.dump"), 'r')
36
+ @uri = 'file://'+File.expand_path(File.dirname(__FILE__) + "/fixtures/http/http.#{format}.dump")
37
+ TCPSocket.should_receive(:new).and_return(@request)
38
+ @request.should_receive(:write)
39
+ @uri.should_receive(:host).at_least(2).times
40
+ @uri.should_receive(:port)
41
+ @uri.should_receive(:path)
42
+ @uri.should_receive(:query)
43
+ @uri.should_receive(:userinfo)
44
+ end
45
+
46
+ it "should parse a raw response" do
47
+ prepare_mock_request_dump :raw
48
+ @template_hash.should == Yajl::HttpStream.delete(@uri)
49
+ end
50
+
51
+ it "should parse a raw response and symbolize keys" do
52
+ prepare_mock_request_dump :raw
53
+ @template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
54
+ end
55
+
56
+ it "should parse a bzip2 compressed response" do
57
+ prepare_mock_request_dump :bzip2
58
+ @template_hash.should == Yajl::HttpStream.delete(@uri)
59
+ end
60
+
61
+ it "should parse a bzip2 compressed response and symbolize keys" do
62
+ prepare_mock_request_dump :bzip2
63
+ @template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
64
+ end
65
+
66
+ it "should parse a deflate compressed response" do
67
+ prepare_mock_request_dump :deflate
68
+ @template_hash.should == Yajl::HttpStream.delete(@uri)
69
+ end
70
+
71
+ it "should parse a deflate compressed response and symbolize keys" do
72
+ prepare_mock_request_dump :deflate
73
+ @template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
74
+ end
75
+
76
+ it "should parse a gzip compressed response" do
77
+ prepare_mock_request_dump :gzip
78
+ @template_hash.should == Yajl::HttpStream.delete(@uri)
79
+ end
80
+
81
+ it "should parse a gzip compressed response and symbolize keys" do
82
+ prepare_mock_request_dump :gzip
83
+ @template_hash_symbolized.should == Yajl::HttpStream.delete(@uri, :symbolize_keys => true)
84
+ end
85
+ end
File without changes
@@ -0,0 +1,86 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
+ require 'yajl/bzip2'
4
+ require 'yajl/gzip'
5
+ require 'yajl/deflate'
6
+ require 'yajl/http_stream'
7
+
8
+ def parse_off_headers(io)
9
+ io.each_line do |line|
10
+ if line == "\r\n" # end of the headers
11
+ break
12
+ end
13
+ end
14
+ end
15
+
16
+ describe "Yajl HTTP POST request" do
17
+ before(:all) do
18
+ raw = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.raw.dump'), 'r')
19
+ parse_off_headers(raw)
20
+ @template_hash = Yajl::Parser.parse(raw)
21
+
22
+ raw.rewind
23
+ parse_off_headers(raw)
24
+ @template_hash_symbolized = Yajl::Parser.parse(raw, :symbolize_keys => true)
25
+
26
+ @deflate = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.deflate.dump'), 'r')
27
+ @gzip = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.gzip.dump'), 'r')
28
+ @body = "blah=foo&bar=baz"
29
+ end
30
+
31
+ after(:each) do
32
+ @file_path = nil
33
+ end
34
+
35
+ def prepare_mock_request_dump(format=:raw)
36
+ @request = File.new(File.expand_path(File.dirname(__FILE__) + "/fixtures/http.#{format}.dump"), 'r')
37
+ @uri = 'file://'+File.expand_path(File.dirname(__FILE__) + "/fixtures/http/http.#{format}.dump")
38
+ TCPSocket.should_receive(:new).and_return(@request)
39
+ @request.should_receive(:write)
40
+ @uri.should_receive(:host).at_least(2).times
41
+ @uri.should_receive(:port)
42
+ @uri.should_receive(:path)
43
+ @uri.should_receive(:query)
44
+ @uri.should_receive(:userinfo)
45
+ end
46
+
47
+ it "should parse a raw response" do
48
+ prepare_mock_request_dump :raw
49
+ @template_hash.should == Yajl::HttpStream.post(@uri, @body)
50
+ end
51
+
52
+ it "should parse a raw response and symbolize keys" do
53
+ prepare_mock_request_dump :raw
54
+ @template_hash_symbolized.should == Yajl::HttpStream.post(@uri, @body, :symbolize_keys => true)
55
+ end
56
+
57
+ it "should parse a bzip2 compressed response" do
58
+ prepare_mock_request_dump :bzip2
59
+ @template_hash.should == Yajl::HttpStream.post(@uri, @body)
60
+ end
61
+
62
+ it "should parse a bzip2 compressed response and symbolize keys" do
63
+ prepare_mock_request_dump :bzip2
64
+ @template_hash_symbolized.should == Yajl::HttpStream.post(@uri, @body, :symbolize_keys => true)
65
+ end
66
+
67
+ it "should parse a deflate compressed response" do
68
+ prepare_mock_request_dump :deflate
69
+ @template_hash.should == Yajl::HttpStream.post(@uri, @body)
70
+ end
71
+
72
+ it "should parse a deflate compressed response and symbolize keys" do
73
+ prepare_mock_request_dump :deflate
74
+ @template_hash_symbolized.should == Yajl::HttpStream.post(@uri, @body, :symbolize_keys => true)
75
+ end
76
+
77
+ it "should parse a gzip compressed response" do
78
+ prepare_mock_request_dump :gzip
79
+ @template_hash.should == Yajl::HttpStream.post(@uri, @body)
80
+ end
81
+
82
+ it "should parse a gzip compressed response and symbolize keys" do
83
+ prepare_mock_request_dump :gzip
84
+ @template_hash_symbolized.should == Yajl::HttpStream.post(@uri, @body, :symbolize_keys => true)
85
+ end
86
+ end
@@ -0,0 +1,86 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
+ require 'yajl/bzip2'
4
+ require 'yajl/gzip'
5
+ require 'yajl/deflate'
6
+ require 'yajl/http_stream'
7
+
8
+ def parse_off_headers(io)
9
+ io.each_line do |line|
10
+ if line == "\r\n" # end of the headers
11
+ break
12
+ end
13
+ end
14
+ end
15
+
16
+ describe "Yajl HTTP PUT request" do
17
+ before(:all) do
18
+ raw = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.raw.dump'), 'r')
19
+ parse_off_headers(raw)
20
+ @template_hash = Yajl::Parser.parse(raw)
21
+
22
+ raw.rewind
23
+ parse_off_headers(raw)
24
+ @template_hash_symbolized = Yajl::Parser.parse(raw, :symbolize_keys => true)
25
+
26
+ @deflate = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.deflate.dump'), 'r')
27
+ @gzip = File.new(File.expand_path(File.dirname(__FILE__) + '/fixtures/http.gzip.dump'), 'r')
28
+ @body = "blah=foo&bar=baz"
29
+ end
30
+
31
+ after(:each) do
32
+ @file_path = nil
33
+ end
34
+
35
+ def prepare_mock_request_dump(format=:raw)
36
+ @request = File.new(File.expand_path(File.dirname(__FILE__) + "/fixtures/http.#{format}.dump"), 'r')
37
+ @uri = 'file://'+File.expand_path(File.dirname(__FILE__) + "/fixtures/http/http.#{format}.dump")
38
+ TCPSocket.should_receive(:new).and_return(@request)
39
+ @request.should_receive(:write)
40
+ @uri.should_receive(:host).at_least(2).times
41
+ @uri.should_receive(:port)
42
+ @uri.should_receive(:path)
43
+ @uri.should_receive(:query)
44
+ @uri.should_receive(:userinfo)
45
+ end
46
+
47
+ it "should parse a raw response" do
48
+ prepare_mock_request_dump :raw
49
+ @template_hash.should == Yajl::HttpStream.put(@uri, @body)
50
+ end
51
+
52
+ it "should parse a raw response and symbolize keys" do
53
+ prepare_mock_request_dump :raw
54
+ @template_hash_symbolized.should == Yajl::HttpStream.put(@uri, @body, :symbolize_keys => true)
55
+ end
56
+
57
+ it "should parse a bzip2 compressed response" do
58
+ prepare_mock_request_dump :bzip2
59
+ @template_hash.should == Yajl::HttpStream.put(@uri, @body)
60
+ end
61
+
62
+ it "should parse a bzip2 compressed response and symbolize keys" do
63
+ prepare_mock_request_dump :bzip2
64
+ @template_hash_symbolized.should == Yajl::HttpStream.put(@uri, @body, :symbolize_keys => true)
65
+ end
66
+
67
+ it "should parse a deflate compressed response" do
68
+ prepare_mock_request_dump :deflate
69
+ @template_hash.should == Yajl::HttpStream.put(@uri, @body)
70
+ end
71
+
72
+ it "should parse a deflate compressed response and symbolize keys" do
73
+ prepare_mock_request_dump :deflate
74
+ @template_hash_symbolized.should == Yajl::HttpStream.put(@uri, @body, :symbolize_keys => true)
75
+ end
76
+
77
+ it "should parse a gzip compressed response" do
78
+ prepare_mock_request_dump :gzip
79
+ @template_hash.should == Yajl::HttpStream.put(@uri, @body)
80
+ end
81
+
82
+ it "should parse a gzip compressed response and symbolize keys" do
83
+ prepare_mock_request_dump :gzip
84
+ @template_hash_symbolized.should == Yajl::HttpStream.put(@uri, @body, :symbolize_keys => true)
85
+ end
86
+ end
data/yajl-ruby.gemspec CHANGED
@@ -1,12 +1,15 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{yajl-ruby}
5
- s.version = "0.5.12"
8
+ s.version = "0.6.0"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
11
  s.authors = ["Brian Lopez", "Lloyd Hilaiel"]
9
- s.date = %q{2009-07-31}
12
+ s.date = %q{2009-08-19}
10
13
  s.email = %q{seniorlopez@gmail.com}
11
14
  s.extensions = ["ext/extconf.rb"]
12
15
  s.extra_rdoc_files = [
@@ -80,7 +83,10 @@ Gem::Specification.new do |s|
80
83
  "spec/http/fixtures/http.deflate.dump",
81
84
  "spec/http/fixtures/http.gzip.dump",
82
85
  "spec/http/fixtures/http.raw.dump",
83
- "spec/http/http_spec.rb",
86
+ "spec/http/http_delete_spec.rb",
87
+ "spec/http/http_get_spec.rb",
88
+ "spec/http/http_post_spec.rb",
89
+ "spec/http/http_put_spec.rb",
84
90
  "spec/json_gem_compatibility/compatibility_spec.rb",
85
91
  "spec/parsing/active_support_spec.rb",
86
92
  "spec/parsing/chunked_spec.rb",
@@ -156,7 +162,10 @@ Gem::Specification.new do |s|
156
162
  s.summary = %q{Ruby C bindings to the excellent Yajl JSON stream-based parser library.}
157
163
  s.test_files = [
158
164
  "spec/encoding/encoding_spec.rb",
159
- "spec/http/http_spec.rb",
165
+ "spec/http/http_delete_spec.rb",
166
+ "spec/http/http_get_spec.rb",
167
+ "spec/http/http_post_spec.rb",
168
+ "spec/http/http_put_spec.rb",
160
169
  "spec/json_gem_compatibility/compatibility_spec.rb",
161
170
  "spec/parsing/active_support_spec.rb",
162
171
  "spec/parsing/chunked_spec.rb",
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.5.12
4
+ version: 0.6.0
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-07-31 00:00:00 -07:00
13
+ date: 2009-08-19 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -90,7 +90,10 @@ files:
90
90
  - spec/http/fixtures/http.deflate.dump
91
91
  - spec/http/fixtures/http.gzip.dump
92
92
  - spec/http/fixtures/http.raw.dump
93
- - spec/http/http_spec.rb
93
+ - spec/http/http_delete_spec.rb
94
+ - spec/http/http_get_spec.rb
95
+ - spec/http/http_post_spec.rb
96
+ - spec/http/http_put_spec.rb
94
97
  - spec/json_gem_compatibility/compatibility_spec.rb
95
98
  - spec/parsing/active_support_spec.rb
96
99
  - spec/parsing/chunked_spec.rb
@@ -184,12 +187,14 @@ requirements: []
184
187
  rubyforge_project: yajl-ruby
185
188
  rubygems_version: 1.3.5
186
189
  signing_key:
187
- source:
188
190
  specification_version: 3
189
191
  summary: Ruby C bindings to the excellent Yajl JSON stream-based parser library.
190
192
  test_files:
191
193
  - spec/encoding/encoding_spec.rb
192
- - spec/http/http_spec.rb
194
+ - spec/http/http_delete_spec.rb
195
+ - spec/http/http_get_spec.rb
196
+ - spec/http/http_post_spec.rb
197
+ - spec/http/http_put_spec.rb
193
198
  - spec/json_gem_compatibility/compatibility_spec.rb
194
199
  - spec/parsing/active_support_spec.rb
195
200
  - spec/parsing/chunked_spec.rb