kerryb-httparty 0.4.3 → 0.4.4
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.
- data/History +7 -1
- data/Manifest +6 -9
- data/README.rdoc +54 -0
- data/Rakefile +1 -1
- data/httparty.gemspec +7 -10
- data/kerryb-httparty.gemspec +36 -0
- data/lib/httparty.rb +8 -7
- data/lib/httparty/core_extensions.rb +6 -2
- data/lib/httparty/request.rb +28 -14
- data/lib/httparty/version.rb +1 -1
- data/spec/httparty/cookie_hash_spec.rb +1 -1
- data/spec/httparty/request_spec.rb +23 -3
- data/spec/httparty/response_spec.rb +1 -1
- data/spec/httparty_spec.rb +9 -2
- data/spec/spec_helper.rb +1 -1
- metadata +37 -35
- data/README +0 -40
- data/setup.rb +0 -1585
- data/spec/hash_spec.rb +0 -49
- data/spec/string_spec.rb +0 -27
data/History
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
== 0.4.
|
1
|
+
== 0.4.4 2009-07-19
|
2
|
+
* 2 minor update
|
3
|
+
* :query no longer sets form data. Use body and set content type to application/x-www-form-urlencoded if you need it. :query was wrong for that.
|
4
|
+
* Fixed a bug in the cookies class method that caused cookies to be forgotten after the first request.
|
5
|
+
* Also, some general cleanup of tests and such.
|
6
|
+
|
7
|
+
== 0.4.3 2009-04-23
|
2
8
|
* 1 minor update
|
3
9
|
* added message to the response object
|
4
10
|
|
data/Manifest
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
History
|
2
|
+
MIT-LICENSE
|
3
|
+
Manifest
|
4
|
+
README.rdoc
|
5
|
+
Rakefile
|
1
6
|
bin/httparty
|
2
7
|
cucumber.yml
|
3
8
|
examples/aaws.rb
|
@@ -17,8 +22,8 @@ features/steps/httparty_steps.rb
|
|
17
22
|
features/steps/mongrel_helper.rb
|
18
23
|
features/steps/remote_service_steps.rb
|
19
24
|
features/supports_redirection.feature
|
20
|
-
History
|
21
25
|
httparty.gemspec
|
26
|
+
lib/httparty.rb
|
22
27
|
lib/httparty/cookie_hash.rb
|
23
28
|
lib/httparty/core_extensions.rb
|
24
29
|
lib/httparty/exceptions.rb
|
@@ -26,25 +31,17 @@ lib/httparty/module_inheritable_attributes.rb
|
|
26
31
|
lib/httparty/request.rb
|
27
32
|
lib/httparty/response.rb
|
28
33
|
lib/httparty/version.rb
|
29
|
-
lib/httparty.rb
|
30
|
-
Manifest
|
31
|
-
MIT-LICENSE
|
32
|
-
Rakefile
|
33
|
-
README
|
34
|
-
setup.rb
|
35
34
|
spec/fixtures/delicious.xml
|
36
35
|
spec/fixtures/empty.xml
|
37
36
|
spec/fixtures/google.html
|
38
37
|
spec/fixtures/twitter.json
|
39
38
|
spec/fixtures/twitter.xml
|
40
39
|
spec/fixtures/undefined_method_add_node_for_nil.xml
|
41
|
-
spec/hash_spec.rb
|
42
40
|
spec/httparty/cookie_hash_spec.rb
|
43
41
|
spec/httparty/request_spec.rb
|
44
42
|
spec/httparty/response_spec.rb
|
45
43
|
spec/httparty_spec.rb
|
46
44
|
spec/spec.opts
|
47
45
|
spec/spec_helper.rb
|
48
|
-
spec/string_spec.rb
|
49
46
|
website/css/common.css
|
50
47
|
website/index.html
|
data/README.rdoc
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
= httparty
|
2
|
+
|
3
|
+
Makes http fun again!
|
4
|
+
|
5
|
+
== Note on Releases
|
6
|
+
|
7
|
+
Releases are tagged on github and also released as gems on github and rubyforge. Master is pushed to whenever I add a patch or a new feature. To build from master, you can clone the code, generate the updated gemspec, build the gem and install.
|
8
|
+
|
9
|
+
* rake build_gemspec
|
10
|
+
* gem build httparty.gemspec
|
11
|
+
* gem install the gem that was built
|
12
|
+
|
13
|
+
== Note on Patches/Pull Requests
|
14
|
+
|
15
|
+
* Fork the project.
|
16
|
+
* Make your feature addition or bug fix.
|
17
|
+
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
18
|
+
* Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
|
19
|
+
* Send me a pull request. Bonus points for topic branches.
|
20
|
+
|
21
|
+
== Features:
|
22
|
+
|
23
|
+
* Easy get, post requests
|
24
|
+
* Basic http authentication
|
25
|
+
* Default request query string parameters (ie: for api keys that are needed on each request)
|
26
|
+
* Automatic parsing of JSON and XML into ruby hashes based on response content-type
|
27
|
+
|
28
|
+
== Examples
|
29
|
+
|
30
|
+
See http://github.com/jnunemaker/httparty/tree/master/examples
|
31
|
+
|
32
|
+
== Command Line Interface
|
33
|
+
|
34
|
+
httparty also includes the executable <tt>httparty</tt> which can be
|
35
|
+
used to query web services and examine the resulting output. By default
|
36
|
+
it will output the response as a pretty-printed Ruby object (useful for
|
37
|
+
grokking the structure of output). This can also be overridden to output
|
38
|
+
formatted XML or JSON. Execute <tt>httparty --help</tt> for all the
|
39
|
+
options. Below is an example of how easy it is.
|
40
|
+
|
41
|
+
httparty "http://twitter.com/statuses/public_timeline.json"
|
42
|
+
|
43
|
+
== Requirements
|
44
|
+
|
45
|
+
* Crack http://github.com/jnunemaker/crack/ - For XML and JSON parsing.
|
46
|
+
* You like to party!
|
47
|
+
|
48
|
+
== Install
|
49
|
+
|
50
|
+
* sudo gem install httparty
|
51
|
+
|
52
|
+
== Docs
|
53
|
+
|
54
|
+
http://rdoc.info/projects/jnunemaker/httparty
|
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ require 'spec/rake/spectask'
|
|
8
8
|
require "lib/#{ProjectName}/version"
|
9
9
|
require 'cucumber/rake/task'
|
10
10
|
|
11
|
-
Echoe.new(ProjectName, HTTParty::Version) do |p|
|
11
|
+
Echoe.new("kerryb-#{ProjectName}", HTTParty::Version) do |p|
|
12
12
|
p.description = "Makes http fun! Also, makes consuming restful web services dead easy."
|
13
13
|
p.install_message = "When you HTTParty, you must party hard!"
|
14
14
|
p.url = "http://#{ProjectName}.rubyforge.org"
|
data/httparty.gemspec
CHANGED
@@ -2,39 +2,36 @@
|
|
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.4"
|
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-08-03}
|
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}
|
13
13
|
s.executables = ["httparty"]
|
14
|
-
s.extra_rdoc_files = ["bin/httparty", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "README"]
|
15
|
-
s.files = ["bin/httparty", "cucumber.yml", "examples/aaws.rb", "examples/basic.rb", "examples/delicious.rb", "examples/google.rb", "examples/rubyurl.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "features/basic_authentication.feature", "features/command_line.feature", "features/deals_with_http_error_codes.feature", "features/handles_multiple_formats.feature", "features/steps/env.rb", "features/steps/httparty_response_steps.rb", "features/steps/httparty_steps.rb", "features/steps/mongrel_helper.rb", "features/steps/remote_service_steps.rb", "features/supports_redirection.feature", "History", "httparty.gemspec", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README
|
14
|
+
s.extra_rdoc_files = ["bin/httparty", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "README.rdoc"]
|
15
|
+
s.files = ["bin/httparty", "cucumber.yml", "examples/aaws.rb", "examples/basic.rb", "examples/delicious.rb", "examples/google.rb", "examples/rubyurl.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "features/basic_authentication.feature", "features/command_line.feature", "features/deals_with_http_error_codes.feature", "features/handles_multiple_formats.feature", "features/steps/env.rb", "features/steps/httparty_response_steps.rb", "features/steps/httparty_steps.rb", "features/steps/mongrel_helper.rb", "features/steps/remote_service_steps.rb", "features/supports_redirection.feature", "History", "httparty.gemspec", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "spec/fixtures/delicious.xml", "spec/fixtures/empty.xml", "spec/fixtures/google.html", "spec/fixtures/twitter.json", "spec/fixtures/twitter.xml", "spec/fixtures/undefined_method_add_node_for_nil.xml", "spec/httparty/cookie_hash_spec.rb", "spec/httparty/request_spec.rb", "spec/httparty/response_spec.rb", "spec/httparty_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "website/css/common.css", "website/index.html"]
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.homepage = %q{http://httparty.rubyforge.org}
|
18
18
|
s.post_install_message = %q{When you HTTParty, you must party hard!}
|
19
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Httparty", "--main", "README"]
|
19
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Httparty", "--main", "README.rdoc"]
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
s.rubyforge_project = %q{httparty}
|
22
|
-
s.rubygems_version = %q{1.3.
|
22
|
+
s.rubygems_version = %q{1.3.2}
|
23
23
|
s.summary = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
24
24
|
|
25
25
|
if s.respond_to? :specification_version then
|
26
26
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
-
s.specification_version =
|
27
|
+
s.specification_version = 3
|
28
28
|
|
29
29
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
30
|
s.add_runtime_dependency(%q<crack>, [">= 0.1.1"])
|
31
|
-
s.add_development_dependency(%q<echoe>, [">= 0"])
|
32
31
|
else
|
33
32
|
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
34
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
35
33
|
end
|
36
34
|
else
|
37
35
|
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
38
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
39
36
|
end
|
40
37
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{kerryb-httparty}
|
5
|
+
s.version = "0.4.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["John Nunemaker"]
|
9
|
+
s.date = %q{2010-04-08}
|
10
|
+
s.default_executable = %q{httparty}
|
11
|
+
s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
12
|
+
s.email = %q{nunemaker@gmail.com}
|
13
|
+
s.executables = ["httparty"]
|
14
|
+
s.extra_rdoc_files = ["README.rdoc", "bin/httparty", "lib/httparty.rb", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb"]
|
15
|
+
s.files = ["History", "MIT-LICENSE", "Manifest", "README.rdoc", "Rakefile", "bin/httparty", "cucumber.yml", "examples/aaws.rb", "examples/basic.rb", "examples/delicious.rb", "examples/google.rb", "examples/rubyurl.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "features/basic_authentication.feature", "features/command_line.feature", "features/deals_with_http_error_codes.feature", "features/handles_multiple_formats.feature", "features/steps/env.rb", "features/steps/httparty_response_steps.rb", "features/steps/httparty_steps.rb", "features/steps/mongrel_helper.rb", "features/steps/remote_service_steps.rb", "features/supports_redirection.feature", "httparty.gemspec", "lib/httparty.rb", "lib/httparty/cookie_hash.rb", "lib/httparty/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/module_inheritable_attributes.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "spec/fixtures/delicious.xml", "spec/fixtures/empty.xml", "spec/fixtures/google.html", "spec/fixtures/twitter.json", "spec/fixtures/twitter.xml", "spec/fixtures/undefined_method_add_node_for_nil.xml", "spec/httparty/cookie_hash_spec.rb", "spec/httparty/request_spec.rb", "spec/httparty/response_spec.rb", "spec/httparty_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "website/css/common.css", "website/index.html", "kerryb-httparty.gemspec"]
|
16
|
+
s.homepage = %q{http://httparty.rubyforge.org}
|
17
|
+
s.post_install_message = %q{When you HTTParty, you must party hard!}
|
18
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Kerryb-httparty", "--main", "README.rdoc"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{kerryb-httparty}
|
21
|
+
s.rubygems_version = %q{1.3.6}
|
22
|
+
s.summary = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 3
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
s.add_runtime_dependency(%q<crack>, [">= 0.1.1"])
|
30
|
+
else
|
31
|
+
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
32
|
+
end
|
33
|
+
else
|
34
|
+
s.add_dependency(%q<crack>, [">= 0.1.1"])
|
35
|
+
end
|
36
|
+
end
|
data/lib/httparty.rb
CHANGED
@@ -7,6 +7,8 @@ require 'rubygems'
|
|
7
7
|
gem 'crack'
|
8
8
|
require 'crack'
|
9
9
|
|
10
|
+
require 'httparty/cookie_hash'
|
11
|
+
|
10
12
|
module HTTParty
|
11
13
|
|
12
14
|
AllowedFormats = {
|
@@ -26,7 +28,9 @@ module HTTParty
|
|
26
28
|
base.extend ClassMethods
|
27
29
|
base.send :include, HTTParty::ModuleInheritableAttributes
|
28
30
|
base.send(:mattr_inheritable, :default_options)
|
31
|
+
base.send(:mattr_inheritable, :default_cookies)
|
29
32
|
base.instance_variable_set("@default_options", {})
|
33
|
+
base.instance_variable_set("@default_cookies", CookieHash.new)
|
30
34
|
end
|
31
35
|
|
32
36
|
module ClassMethods
|
@@ -90,8 +94,7 @@ module HTTParty
|
|
90
94
|
|
91
95
|
def cookies(h={})
|
92
96
|
raise ArgumentError, 'Cookies must be a hash' unless h.is_a?(Hash)
|
93
|
-
|
94
|
-
default_options[:cookies].add_cookies(h)
|
97
|
+
default_cookies.add_cookies(h)
|
95
98
|
end
|
96
99
|
|
97
100
|
# Allows setting the format with which to parse.
|
@@ -102,7 +105,7 @@ module HTTParty
|
|
102
105
|
# format :json
|
103
106
|
# end
|
104
107
|
def format(f)
|
105
|
-
raise UnsupportedFormat, "Must be one of: #{AllowedFormats.values.uniq.join(', ')}" unless AllowedFormats.value?(f)
|
108
|
+
raise UnsupportedFormat, "Must be one of: #{AllowedFormats.values.map { |v| v.to_s }.uniq.sort.join(', ')}" unless AllowedFormats.value?(f)
|
106
109
|
default_options[:format] = f
|
107
110
|
end
|
108
111
|
|
@@ -157,11 +160,10 @@ module HTTParty
|
|
157
160
|
end
|
158
161
|
|
159
162
|
def process_cookies(options) #:nodoc:
|
160
|
-
return unless options[:cookies] ||
|
163
|
+
return unless options[:cookies] || default_cookies
|
161
164
|
options[:headers] ||= {}
|
162
|
-
options[:headers]["cookie"] = cookies(options[:cookies] || {}).to_cookie_string
|
165
|
+
options[:headers]["cookie"] = cookies.merge(options[:cookies] || {}).to_cookie_string
|
163
166
|
|
164
|
-
default_options.delete(:cookies)
|
165
167
|
options.delete(:cookies)
|
166
168
|
end
|
167
169
|
end
|
@@ -198,7 +200,6 @@ module HTTParty
|
|
198
200
|
end
|
199
201
|
end
|
200
202
|
|
201
|
-
require 'httparty/cookie_hash'
|
202
203
|
require 'httparty/core_extensions'
|
203
204
|
require 'httparty/exceptions'
|
204
205
|
require 'httparty/request'
|
@@ -1,5 +1,9 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
if RUBY_VERSION.to_f == 1.8
|
2
|
+
class BlankSlate #:nodoc:
|
3
|
+
instance_methods.each { |m| undef_method m unless m =~ /^__|instance_eval|object_id/ }
|
4
|
+
end
|
5
|
+
else
|
6
|
+
class BlankSlate < BasicObject; end
|
3
7
|
end
|
4
8
|
|
5
9
|
# 1.8.6 has mistyping of transitive in if statement
|
data/lib/httparty/request.rb
CHANGED
@@ -41,28 +41,42 @@ module HTTParty
|
|
41
41
|
end
|
42
42
|
|
43
43
|
private
|
44
|
+
# def http
|
45
|
+
# http = Net::HTTP.new(uri.host, uri.port, options[:http_proxyaddr], options[:http_proxyport])
|
46
|
+
# http.use_ssl = (uri.port == 443)
|
47
|
+
# http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
48
|
+
# http
|
49
|
+
# end
|
50
|
+
|
44
51
|
def http
|
45
52
|
http = Net::HTTP.new(uri.host, uri.port, options[:http_proxyaddr], options[:http_proxyport])
|
46
53
|
http.use_ssl = (uri.port == 443 || uri.scheme == 'https')
|
47
54
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
55
|
+
if options[:timeout] && options[:timeout].is_a?(Integer)
|
56
|
+
http.open_timeout = options[:timeout]
|
57
|
+
http.read_timeout = options[:timeout]
|
58
|
+
end
|
48
59
|
http
|
49
60
|
end
|
61
|
+
|
50
62
|
|
51
|
-
def
|
52
|
-
|
63
|
+
def body
|
64
|
+
options[:body].is_a?(Hash) ? options[:body].to_params : options[:body]
|
65
|
+
end
|
66
|
+
|
67
|
+
def username
|
68
|
+
options[:basic_auth][:username]
|
69
|
+
end
|
70
|
+
|
71
|
+
def password
|
72
|
+
options[:basic_auth][:password]
|
53
73
|
end
|
54
74
|
|
55
75
|
def setup_raw_request
|
56
76
|
@raw_request = http_method.new(uri.request_uri)
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
@raw_request.body = options[:body].is_a?(Hash) ? options[:body].to_params : options[:body] unless options[:body].blank?
|
63
|
-
@raw_request.initialize_http_header options[:headers]
|
64
|
-
|
65
|
-
configure_basic_auth if options[:basic_auth]
|
77
|
+
@raw_request.body = body if body
|
78
|
+
@raw_request.initialize_http_header(options[:headers])
|
79
|
+
@raw_request.basic_auth(username, password) if options[:basic_auth]
|
66
80
|
end
|
67
81
|
|
68
82
|
def perform_actual_request
|
@@ -77,13 +91,13 @@ module HTTParty
|
|
77
91
|
|
78
92
|
def query_string(uri)
|
79
93
|
query_string_parts = []
|
80
|
-
query_string_parts << uri.query unless uri.query.
|
94
|
+
query_string_parts << uri.query unless uri.query.nil?
|
81
95
|
|
82
96
|
if options[:query].is_a?(Hash)
|
83
97
|
query_string_parts << options[:default_params].merge(options[:query]).to_params
|
84
98
|
else
|
85
|
-
query_string_parts << options[:default_params].to_params unless options[:default_params].
|
86
|
-
query_string_parts << options[:query] unless options[:query].
|
99
|
+
query_string_parts << options[:default_params].to_params unless options[:default_params].nil?
|
100
|
+
query_string_parts << options[:query] unless options[:query].nil?
|
87
101
|
end
|
88
102
|
|
89
103
|
query_string_parts.size > 0 ? query_string_parts.join('&') : nil
|
data/lib/httparty/version.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', 'spec_helper')
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
2
2
|
|
3
3
|
describe HTTParty::Request do
|
4
4
|
def stub_response(body, code = 200)
|
@@ -35,6 +35,11 @@ describe HTTParty::Request do
|
|
35
35
|
request = HTTParty::Request.new(Net::HTTP::Get, 'http://foobar.com')
|
36
36
|
request.send(:http).use_ssl?.should == false
|
37
37
|
end
|
38
|
+
|
39
|
+
it "should use ssl for https scheme" do
|
40
|
+
request = HTTParty::Request.new(Net::HTTP::Get, 'https://foobar.com')
|
41
|
+
request.send(:http).use_ssl?.should == true
|
42
|
+
end
|
38
43
|
|
39
44
|
it 'should use ssl for https scheme' do
|
40
45
|
request = HTTParty::Request.new(Net::HTTP::Get, 'https://foobar.com')
|
@@ -46,6 +51,23 @@ describe HTTParty::Request do
|
|
46
51
|
@request.send(:setup_raw_request)
|
47
52
|
@request.instance_variable_get(:@raw_request)['authorization'].should_not be_nil
|
48
53
|
end
|
54
|
+
|
55
|
+
it "should change timeout when configured (if an Integer)" do
|
56
|
+
@request.send(:http).open_timeout.should be_nil
|
57
|
+
@request.send(:http).read_timeout.should == 60
|
58
|
+
|
59
|
+
invalid_timeout = "invalid"
|
60
|
+
invalid_timeout.is_a?(Integer).should be_false
|
61
|
+
@request.options[:timeout] = invalid_timeout
|
62
|
+
@request.send(:http).open_timeout.should be_nil
|
63
|
+
@request.send(:http).read_timeout.should == 60
|
64
|
+
|
65
|
+
timeout = 30
|
66
|
+
timeout.is_a?(Integer).should be_true
|
67
|
+
@request.options[:timeout] = timeout
|
68
|
+
@request.send(:http).open_timeout.should == timeout
|
69
|
+
@request.send(:http).read_timeout.should == timeout
|
70
|
+
end
|
49
71
|
end
|
50
72
|
|
51
73
|
describe '#format_from_mimetype' do
|
@@ -114,7 +136,6 @@ describe HTTParty::Request do
|
|
114
136
|
end
|
115
137
|
|
116
138
|
describe 'with non-200 responses' do
|
117
|
-
|
118
139
|
it 'should return a valid object for 4xx response' do
|
119
140
|
stub_response '<foo><bar>yes</bar></foo>', 401
|
120
141
|
resp = @request.perform
|
@@ -130,7 +151,6 @@ describe HTTParty::Request do
|
|
130
151
|
resp.body.should == "<foo><bar>error</bar></foo>"
|
131
152
|
resp['foo']['bar'].should == "error"
|
132
153
|
end
|
133
|
-
|
134
154
|
end
|
135
155
|
end
|
136
156
|
|
data/spec/httparty_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'spec_helper')
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
|
2
2
|
|
3
3
|
describe HTTParty do
|
4
4
|
before(:each) do
|
@@ -96,6 +96,13 @@ describe HTTParty do
|
|
96
96
|
@klass.get("")
|
97
97
|
end
|
98
98
|
|
99
|
+
it "should pass the proper cookies when requested multiple times" do
|
100
|
+
2.times do
|
101
|
+
expect_cookie_header "type=snickerdoodle"
|
102
|
+
@klass.get("")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
99
106
|
it "should allow the class defaults to be overridden" do
|
100
107
|
expect_cookie_header "type=chocolate_chip"
|
101
108
|
|
@@ -175,7 +182,7 @@ describe HTTParty do
|
|
175
182
|
it 'should only print each format once with an exception' do
|
176
183
|
lambda do
|
177
184
|
@klass.format :foobar
|
178
|
-
end.should raise_error(HTTParty::UnsupportedFormat, "Must be one of: json, plain,
|
185
|
+
end.should raise_error(HTTParty::UnsupportedFormat, "Must be one of: html, json, plain, xml, yaml")
|
179
186
|
end
|
180
187
|
|
181
188
|
end
|