httparty 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of httparty might be problematic. Click here for more details.

@@ -1,3 +1,7 @@
1
+ == 0.1.6 2008-11-26
2
+ * 1 major enhancement
3
+ * now passing :query to set_form_data if post request to avoid content length errors
4
+
1
5
  == 0.1.5 2008-11-14
2
6
  * 2 major enhancements
3
7
  * Refactored send request method out into its own object.
@@ -9,6 +9,7 @@ config/requirements.rb
9
9
  examples/aaws.rb
10
10
  examples/delicious.rb
11
11
  examples/google.rb
12
+ examples/rubyurl.rb
12
13
  examples/twitter.rb
13
14
  examples/whoismyrep.rb
14
15
  httparty.gemspec
@@ -0,0 +1,14 @@
1
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require File.join(dir, 'httparty')
3
+
4
+ class Rubyurl
5
+ include HTTParty
6
+ base_uri 'rubyurl.com'
7
+
8
+ def self.shorten(website_url)
9
+ xml = post('/api/links.json', :query => {'link[website_url]' => website_url})
10
+ xml['link'] && xml['link']['permalink']
11
+ end
12
+ end
13
+
14
+ puts Rubyurl.shorten( 'http://istwitterdown.com/' ).inspect
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{httparty}
5
- s.version = "0.1.5"
5
+ s.version = "0.1.6"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["John Nunemaker"]
9
- s.date = %q{2008-11-14}
9
+ s.date = %q{2008-11-26}
10
10
  s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
11
11
  s.email = ["nunemaker@gmail.com"]
12
12
  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt"]
13
- s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "config/hoe.rb", "config/requirements.rb", "examples/aaws.rb", "examples/delicious.rb", "examples/google.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "httparty.gemspec", "lib/httparty.rb", "lib/httparty/request.rb", "lib/httparty/version.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/httparty/request_spec.rb", "spec/httparty_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "website/css/common.css", "website/index.html"]
13
+ s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "config/hoe.rb", "config/requirements.rb", "examples/aaws.rb", "examples/delicious.rb", "examples/google.rb", "examples/rubyurl.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "httparty.gemspec", "lib/httparty.rb", "lib/httparty/request.rb", "lib/httparty/version.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/httparty/request_spec.rb", "spec/httparty_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "website/css/common.css", "website/index.html"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://httparty.rubyforge.org}
16
16
  s.post_install_message = %q{When you HTTParty, you must party hard!}
@@ -37,7 +37,8 @@ module HTTParty
37
37
  end
38
38
 
39
39
  def get_response(uri) #:nodoc:
40
- request = http_method.new(uri.request_uri)
40
+ request = http_method.new(uri.request_uri)
41
+ request.set_form_data(options[:query]) if post? && options[:query]
41
42
  request.body = options[:body].is_a?(Hash) ? options[:body].to_query : options[:body] unless options[:body].blank?
42
43
  request.initialize_http_header options[:headers]
43
44
  request.basic_auth(options[:basic_auth][:username], options[:basic_auth][:password]) if options[:basic_auth]
@@ -99,6 +100,11 @@ module HTTParty
99
100
  raise ArgumentError, 'only get, post, put and delete methods are supported' unless SupportedHTTPMethods.include?(http_method)
100
101
  raise ArgumentError, ':headers must be a hash' if options[:headers] && !options[:headers].is_a?(Hash)
101
102
  raise ArgumentError, ':basic_auth must be a hash' if options[:basic_auth] && !options[:basic_auth].is_a?(Hash)
103
+ raise ArgumentError, ':query must be hash if using HTTP Post' if post? && !options[:query].nil? && !options[:query].is_a?(Hash)
104
+ end
105
+
106
+ def post?
107
+ Net::HTTP::Post == http_method
102
108
  end
103
109
  end
104
110
  end
@@ -2,7 +2,7 @@ module HTTParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 5
5
+ TINY = 6
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -105,3 +105,11 @@ describe HTTParty::Request do
105
105
  end
106
106
  end
107
107
  end
108
+
109
+ describe HTTParty::Request, "with POST http method" do
110
+ it "should raise argument error if query is not a hash" do
111
+ lambda {
112
+ HTTParty::Request.new(Net::HTTP::Post, 'http://api.foo.com/v1', :format => :xml, :query => 'astring').perform
113
+ }.should raise_error(ArgumentError)
114
+ end
115
+ 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.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-14 00:00:00 -05:00
12
+ date: 2008-11-26 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -57,6 +57,7 @@ files:
57
57
  - examples/aaws.rb
58
58
  - examples/delicious.rb
59
59
  - examples/google.rb
60
+ - examples/rubyurl.rb
60
61
  - examples/twitter.rb
61
62
  - examples/whoismyrep.rb
62
63
  - httparty.gemspec