httparty 0.1.8 → 0.2.0
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.
Potentially problematic release.
This version of httparty might be problematic. Click here for more details.
- data/History +4 -0
- data/Manifest +7 -0
- data/Rakefile +1 -1
- data/examples/aaws.rb +3 -0
- data/examples/delicious.rb +1 -1
- data/examples/rubyurl.rb +4 -4
- data/examples/twitter.rb +1 -1
- data/examples/whoismyrep.rb +2 -1
- data/httparty.gemspec +7 -7
- data/lib/core_extensions.rb +340 -0
- data/lib/httparty.rb +23 -47
- data/lib/httparty/exceptions.rb +4 -0
- data/lib/httparty/request.rb +25 -20
- data/lib/httparty/version.rb +1 -1
- data/lib/module_level_inheritable_attributes.rb +25 -0
- data/spec/fixtures/delicious.xml +23 -0
- data/spec/fixtures/google.html +3 -0
- data/spec/fixtures/twitter.json +1 -0
- data/spec/fixtures/twitter.xml +403 -0
- data/spec/httparty/request_spec.rb +4 -22
- data/spec/httparty_spec.rb +61 -3
- data/spec/spec_helper.rb +22 -7
- metadata +15 -5
@@ -5,27 +5,9 @@ describe HTTParty::Request do
|
|
5
5
|
@request = HTTParty::Request.new(Net::HTTP::Get, 'http://api.foo.com/v1', :format => :xml)
|
6
6
|
end
|
7
7
|
|
8
|
-
describe "#
|
9
|
-
it "should
|
10
|
-
|
11
|
-
uri.should == 'http://api.foobar.com'
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should add https if not present for ssl requests" do
|
15
|
-
uri = HTTParty::Request.normalize_base_uri('api.foo.com/v1:443')
|
16
|
-
uri.should == 'https://api.foo.com/v1:443'
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should not remove https for ssl requests" do
|
20
|
-
uri = HTTParty::Request.normalize_base_uri('https://api.foo.com/v1:443')
|
21
|
-
uri.should == 'https://api.foo.com/v1:443'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "uri" do
|
26
|
-
it "should be normalized" do
|
27
|
-
request = HTTParty::Request.new(Net::HTTP::Get, '', :base_uri => 'api.foo.com')
|
28
|
-
request.uri.to_s.should == 'http://api.foo.com'
|
8
|
+
describe "#format" do
|
9
|
+
it "should return the correct parsing format" do
|
10
|
+
@request.format.should == :xml
|
29
11
|
end
|
30
12
|
end
|
31
13
|
|
@@ -78,7 +60,7 @@ describe HTTParty::Request do
|
|
78
60
|
|
79
61
|
def setup_ok_response
|
80
62
|
@ok = Net::HTTPOK.new("1.1", 200, "Content for you")
|
81
|
-
@ok.stub!(:body).and_return(
|
63
|
+
@ok.stub!(:body).and_return('<hash><foo>bar</foo></hash>')
|
82
64
|
@http.should_receive(:request).and_return(@redirect, @ok)
|
83
65
|
@request.options[:format] = :xml
|
84
66
|
end
|
data/spec/httparty_spec.rb
CHANGED
@@ -25,7 +25,7 @@ describe HTTParty do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should have reader" do
|
28
|
-
Foo.base_uri.should == 'api.foo.com/v1'
|
28
|
+
Foo.base_uri.should == 'http://api.foo.com/v1'
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should have writer' do
|
@@ -34,6 +34,23 @@ describe HTTParty do
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
describe "#normalize_base_uri" do
|
38
|
+
it "should add http if not present for non ssl requests" do
|
39
|
+
uri = HTTParty.normalize_base_uri('api.foobar.com')
|
40
|
+
uri.should == 'http://api.foobar.com'
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should add https if not present for ssl requests" do
|
44
|
+
uri = HTTParty.normalize_base_uri('api.foo.com/v1:443')
|
45
|
+
uri.should == 'https://api.foo.com/v1:443'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should not remove https for ssl requests" do
|
49
|
+
uri = HTTParty.normalize_base_uri('https://api.foo.com/v1:443')
|
50
|
+
uri.should == 'https://api.foo.com/v1:443'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
37
54
|
describe "headers" do
|
38
55
|
it "should default to empty hash" do
|
39
56
|
Foo.headers.should == {}
|
@@ -112,8 +129,49 @@ describe HTTParty do
|
|
112
129
|
|
113
130
|
describe "with multiple class definitions" do
|
114
131
|
it "should not run over each others options" do
|
115
|
-
HRest.default_options.should == {:base_uri => 'hrest.com', :default_params => {:two => 'three'}}
|
116
|
-
GRest.default_options.should == {:base_uri => 'grest.com', :default_params => {:one => 'two'}}
|
132
|
+
HRest.default_options.should == {:base_uri => 'http://hrest.com', :default_params => {:two => 'three'}}
|
133
|
+
GRest.default_options.should == {:base_uri => 'http://grest.com', :default_params => {:one => 'two'}}
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "#get" do
|
138
|
+
it "should be able to get html" do
|
139
|
+
stub_http_response_with('google.html')
|
140
|
+
HTTParty.get('http://www.google.com').should == file_fixture('google.html')
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should be able parse response type json automatically" do
|
144
|
+
stub_http_response_with('twitter.json')
|
145
|
+
tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
|
146
|
+
tweets.size.should == 20
|
147
|
+
tweets.first['user'].should == {
|
148
|
+
"name" => "Pyk",
|
149
|
+
"url" => nil,
|
150
|
+
"id" => "7694602",
|
151
|
+
"description" => nil,
|
152
|
+
"protected" => false,
|
153
|
+
"screen_name" => "Pyk",
|
154
|
+
"followers_count" => 1,
|
155
|
+
"location" => "Opera Plaza, California",
|
156
|
+
"profile_image_url" => "http://static.twitter.com/images/default_profile_normal.png"
|
157
|
+
}
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should be able parse response type xml automatically" do
|
161
|
+
stub_http_response_with('twitter.xml')
|
162
|
+
tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.xml')
|
163
|
+
tweets['statuses'].size.should == 20
|
164
|
+
tweets['statuses'].first['user'].should == {
|
165
|
+
"name" => "Magic 8 Bot",
|
166
|
+
"url" => nil,
|
167
|
+
"id" => "17656026",
|
168
|
+
"description" => "ask me a question",
|
169
|
+
"protected" => "false",
|
170
|
+
"screen_name" => "magic8bot",
|
171
|
+
"followers_count" => "90",
|
172
|
+
"profile_image_url" => "http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg",
|
173
|
+
"location" => nil
|
174
|
+
}
|
117
175
|
end
|
118
176
|
end
|
119
177
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'rspec'
|
3
|
+
require 'spec'
|
4
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'httparty')
|
5
|
+
|
6
|
+
def file_fixture(filename)
|
7
|
+
open(File.join(File.dirname(__FILE__), 'fixtures', "#{filename.to_s}")).read
|
7
8
|
end
|
8
9
|
|
9
|
-
|
10
|
+
def stub_http_response_with(filename)
|
11
|
+
format = filename.split('.').last.intern
|
12
|
+
data = file_fixture(filename)
|
13
|
+
http = Net::HTTP.new('localhost', 80)
|
14
|
+
|
15
|
+
response = Net::HTTPOK.new("1.1", 200, "Content for you")
|
16
|
+
response.stub!(:body).and_return(data)
|
17
|
+
http.stub!(:request).and_return(response)
|
18
|
+
|
19
|
+
http_request = HTTParty::Request.new(Net::HTTP::Get, '')
|
20
|
+
http_request.stub!(:get_response).and_return(response)
|
21
|
+
http_request.stub!(:format).and_return(format)
|
22
|
+
|
23
|
+
HTTParty::Request.should_receive(:new).and_return(http_request)
|
24
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -9,18 +9,18 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-07 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: json
|
17
17
|
type: :runtime
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: "
|
23
|
+
version: "1.1"
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: echoe
|
@@ -39,9 +39,12 @@ executables: []
|
|
39
39
|
extensions: []
|
40
40
|
|
41
41
|
extra_rdoc_files:
|
42
|
+
- lib/core_extensions.rb
|
43
|
+
- lib/httparty/exceptions.rb
|
42
44
|
- lib/httparty/request.rb
|
43
45
|
- lib/httparty/version.rb
|
44
46
|
- lib/httparty.rb
|
47
|
+
- lib/module_level_inheritable_attributes.rb
|
45
48
|
- README
|
46
49
|
files:
|
47
50
|
- examples/aaws.rb
|
@@ -53,14 +56,21 @@ files:
|
|
53
56
|
- examples/whoismyrep.rb
|
54
57
|
- History
|
55
58
|
- httparty.gemspec
|
59
|
+
- lib/core_extensions.rb
|
60
|
+
- lib/httparty/exceptions.rb
|
56
61
|
- lib/httparty/request.rb
|
57
62
|
- lib/httparty/version.rb
|
58
63
|
- lib/httparty.rb
|
64
|
+
- lib/module_level_inheritable_attributes.rb
|
59
65
|
- Manifest
|
60
66
|
- MIT-LICENSE
|
61
67
|
- Rakefile
|
62
68
|
- README
|
63
69
|
- setup.rb
|
70
|
+
- spec/fixtures/delicious.xml
|
71
|
+
- spec/fixtures/google.html
|
72
|
+
- spec/fixtures/twitter.json
|
73
|
+
- spec/fixtures/twitter.xml
|
64
74
|
- spec/httparty/request_spec.rb
|
65
75
|
- spec/httparty_spec.rb
|
66
76
|
- spec/spec.opts
|