jnunemaker-httparty 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History +5 -0
- data/Rakefile +1 -1
- data/features/steps/httparty_response_steps.rb +1 -1
- data/httparty.gemspec +18 -2
- data/lib/httparty.rb +10 -8
- data/lib/httparty/response.rb +1 -1
- data/lib/httparty/version.rb +1 -1
- data/spec/httparty/response_spec.rb +6 -2
- data/spec/httparty_spec.rb +24 -0
- metadata +23 -4
data/History
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.4.2 209-03-30
|
2
|
+
* 2 minor changes
|
3
|
+
* response code now returns an integer instead of a string (jqr)
|
4
|
+
* rubyforge project setup for crack so i'm now depending on that instead of jnunemaker-crack
|
5
|
+
|
1
6
|
== 0.4.1 2009-03-29
|
2
7
|
* 1 minor fix
|
3
8
|
* gem 'jnunemaker-crack' instead of gem 'crack'
|
data/Rakefile
CHANGED
@@ -14,7 +14,7 @@ Echoe.new(ProjectName, HTTParty::Version) do |p|
|
|
14
14
|
p.url = "http://#{ProjectName}.rubyforge.org"
|
15
15
|
p.author = "John Nunemaker"
|
16
16
|
p.email = "nunemaker@gmail.com"
|
17
|
-
p.extra_deps = [['
|
17
|
+
p.extra_deps = [['crack', '>= 0.1.1']]
|
18
18
|
p.need_tar_gz = false
|
19
19
|
p.docs_host = WebsitePath
|
20
20
|
end
|
@@ -17,7 +17,7 @@ Then /it should return a Hash equaling:/ do |hash_table|
|
|
17
17
|
end
|
18
18
|
|
19
19
|
Then /it should return a response with a (\d+) response code/ do |code|
|
20
|
-
@response_from_httparty.code.should eql(code)
|
20
|
+
@response_from_httparty.code.should eql(code.to_i)
|
21
21
|
end
|
22
22
|
|
23
23
|
Then /it should raise an HTTParty::RedirectionTooDeep exception/ do
|
data/httparty.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{httparty}
|
5
|
-
s.version = "0.4.
|
5
|
+
s.version = "0.4.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["John Nunemaker"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-04-02}
|
10
10
|
s.default_executable = %q{httparty}
|
11
11
|
s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
12
12
|
s.email = %q{nunemaker@gmail.com}
|
@@ -21,4 +21,20 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.rubyforge_project = %q{httparty}
|
22
22
|
s.rubygems_version = %q{1.3.1}
|
23
23
|
s.summary = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
24
|
+
|
25
|
+
if s.respond_to? :specification_version then
|
26
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
+
s.specification_version = 2
|
28
|
+
|
29
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
|
+
s.add_runtime_dependency(%q<crack>, [">= 0.1.1"])
|
31
|
+
s.add_development_dependency(%q<echoe>, [">= 0"])
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
34
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
35
|
+
end
|
36
|
+
else
|
37
|
+
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
38
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
39
|
+
end
|
24
40
|
end
|
data/lib/httparty.rb
CHANGED
@@ -4,7 +4,7 @@ require 'net/http'
|
|
4
4
|
require 'net/https'
|
5
5
|
require 'httparty/module_inheritable_attributes'
|
6
6
|
require 'rubygems'
|
7
|
-
gem '
|
7
|
+
gem 'crack'
|
8
8
|
require 'crack'
|
9
9
|
|
10
10
|
module HTTParty
|
@@ -18,7 +18,8 @@ module HTTParty
|
|
18
18
|
'text/javascript' => :json,
|
19
19
|
'text/html' => :html,
|
20
20
|
'application/x-yaml' => :yaml,
|
21
|
-
'text/yaml' => :yaml
|
21
|
+
'text/yaml' => :yaml,
|
22
|
+
'text/plain' => :plain
|
22
23
|
} unless defined?(AllowedFormats)
|
23
24
|
|
24
25
|
def self.included(base)
|
@@ -101,7 +102,7 @@ module HTTParty
|
|
101
102
|
# format :json
|
102
103
|
# end
|
103
104
|
def format(f)
|
104
|
-
raise UnsupportedFormat, "Must be one of: #{AllowedFormats.values.join(', ')}" unless AllowedFormats.value?(f)
|
105
|
+
raise UnsupportedFormat, "Must be one of: #{AllowedFormats.values.uniq.join(', ')}" unless AllowedFormats.value?(f)
|
105
106
|
default_options[:format] = f
|
106
107
|
end
|
107
108
|
|
@@ -166,13 +167,14 @@ module HTTParty
|
|
166
167
|
end
|
167
168
|
|
168
169
|
def self.normalize_base_uri(url) #:nodoc:
|
169
|
-
|
170
|
-
|
170
|
+
normalized_url = url.dup
|
171
|
+
use_ssl = (normalized_url =~ /^https/) || normalized_url.include?(':443')
|
172
|
+
ends_with_slash = normalized_url =~ /\/$/
|
171
173
|
|
172
|
-
|
173
|
-
|
174
|
+
normalized_url.chop! if ends_with_slash
|
175
|
+
normalized_url.gsub!(/^https?:\/\//i, '')
|
174
176
|
|
175
|
-
"http#{'s' if use_ssl}://#{
|
177
|
+
"http#{'s' if use_ssl}://#{normalized_url}"
|
176
178
|
end
|
177
179
|
|
178
180
|
class Basement #:nodoc:
|
data/lib/httparty/response.rb
CHANGED
data/lib/httparty/version.rb
CHANGED
@@ -5,7 +5,7 @@ describe HTTParty::Response do
|
|
5
5
|
before do
|
6
6
|
@response_object = {'foo' => 'bar'}
|
7
7
|
@body = "{foo:'bar'}"
|
8
|
-
@code = 200
|
8
|
+
@code = '200'
|
9
9
|
@response = HTTParty::Response.new(@response_object, @body, @code)
|
10
10
|
end
|
11
11
|
|
@@ -18,7 +18,11 @@ describe HTTParty::Response do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should set code" do
|
21
|
-
@response.code.should == @code
|
21
|
+
@response.code.should.to_s == @code
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should set code as a Fixnum" do
|
25
|
+
@response.code.should be_an_instance_of(Fixnum)
|
22
26
|
end
|
23
27
|
end
|
24
28
|
|
data/spec/httparty_spec.rb
CHANGED
@@ -19,6 +19,12 @@ describe HTTParty do
|
|
19
19
|
@klass.base_uri('http://api.foobar.com')
|
20
20
|
@klass.base_uri.should == 'http://api.foobar.com'
|
21
21
|
end
|
22
|
+
|
23
|
+
it 'should not modify the parameter during assignment' do
|
24
|
+
uri = 'http://api.foobar.com'
|
25
|
+
@klass.base_uri(uri)
|
26
|
+
uri.should == 'http://api.foobar.com'
|
27
|
+
end
|
22
28
|
end
|
23
29
|
|
24
30
|
describe "#normalize_base_uri" do
|
@@ -36,6 +42,12 @@ describe HTTParty do
|
|
36
42
|
uri = HTTParty.normalize_base_uri('https://api.foo.com/v1:443')
|
37
43
|
uri.should == 'https://api.foo.com/v1:443'
|
38
44
|
end
|
45
|
+
|
46
|
+
it 'should not modify the parameter' do
|
47
|
+
uri = 'http://api.foobar.com'
|
48
|
+
HTTParty.normalize_base_uri(uri)
|
49
|
+
uri.should == 'http://api.foobar.com'
|
50
|
+
end
|
39
51
|
end
|
40
52
|
|
41
53
|
describe "headers" do
|
@@ -149,11 +161,23 @@ describe HTTParty do
|
|
149
161
|
@klass.default_options[:format].should == :yaml
|
150
162
|
end
|
151
163
|
|
164
|
+
it "should allow plain" do
|
165
|
+
@klass.format :plain
|
166
|
+
@klass.default_options[:format].should == :plain
|
167
|
+
end
|
168
|
+
|
152
169
|
it 'should not allow funky format' do
|
153
170
|
lambda do
|
154
171
|
@klass.format :foobar
|
155
172
|
end.should raise_error(HTTParty::UnsupportedFormat)
|
156
173
|
end
|
174
|
+
|
175
|
+
it 'should only print each format once with an exception' do
|
176
|
+
lambda do
|
177
|
+
@klass.format :foobar
|
178
|
+
end.should raise_error(HTTParty::UnsupportedFormat, "Must be one of: json, plain, html, yaml, xml")
|
179
|
+
end
|
180
|
+
|
157
181
|
end
|
158
182
|
|
159
183
|
describe "with explicit override of automatic redirect handling" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jnunemaker-httparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -9,10 +9,29 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-04-02 00:00:00 -07:00
|
13
13
|
default_executable: httparty
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: crack
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.1.1
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: echoe
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
16
35
|
description: Makes http fun! Also, makes consuming restful web services dead easy.
|
17
36
|
email: nunemaker@gmail.com
|
18
37
|
executables:
|