httparty 0.2.9 → 0.2.10
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 +1 -0
- data/httparty.gemspec +2 -2
- data/lib/core_extensions.rb +2 -2
- data/lib/httparty/version.rb +1 -1
- data/spec/core_extensions_spec.rb +30 -0
- metadata +2 -1
data/History
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 0.2.10 2009-01-29
|
2
|
+
* 1 minor enhancement
|
3
|
+
* Made encoding on query parameters treat everything except URI::PATTERN::UNRESERVED as UNSAFE to force encoding of '+' character (Julian Russell)
|
4
|
+
|
1
5
|
== 0.2.9 2009-01-29
|
2
6
|
* 3 minor enhancements
|
3
7
|
* Added a 'headers' accessor to the response with a hash of any HTTP headers. (Don Peterson)
|
data/Manifest
CHANGED
data/httparty.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{httparty}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.10"
|
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"]
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = %q{nunemaker@gmail.com}
|
13
13
|
s.executables = ["httparty"]
|
14
14
|
s.extra_rdoc_files = ["bin/httparty", "lib/core_extensions.rb", "lib/httparty/cookie_hash.rb", "lib/httparty/exceptions.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "lib/module_level_inheritable_attributes.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/core_extensions.rb", "lib/httparty/cookie_hash.rb", "lib/httparty/exceptions.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "lib/module_level_inheritable_attributes.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README", "setup.rb", "spec/as_buggery_spec.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_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "website/css/common.css", "website/index.html"]
|
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/core_extensions.rb", "lib/httparty/cookie_hash.rb", "lib/httparty/exceptions.rb", "lib/httparty/request.rb", "lib/httparty/response.rb", "lib/httparty/version.rb", "lib/httparty.rb", "lib/module_level_inheritable_attributes.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README", "setup.rb", "spec/as_buggery_spec.rb", "spec/core_extensions_spec.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_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!}
|
data/lib/core_extensions.rb
CHANGED
@@ -310,7 +310,7 @@ class Hash
|
|
310
310
|
#
|
311
311
|
# @return <String> This key value pair as a param
|
312
312
|
#
|
313
|
-
# @example normalize_param(:name, "Bob") #=> "name=Bob&"
|
313
|
+
# @example normalize_param(:name, "Bob Jones") #=> "name=Bob%20Jones&"
|
314
314
|
def normalize_param(key, value)
|
315
315
|
param = ''
|
316
316
|
stack = []
|
@@ -320,7 +320,7 @@ class Hash
|
|
320
320
|
elsif value.is_a?(Hash)
|
321
321
|
stack << [key,value]
|
322
322
|
else
|
323
|
-
param << "#{key}=#{URI.encode(value.to_s)}&"
|
323
|
+
param << "#{key}=#{URI.encode(value.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}&"
|
324
324
|
end
|
325
325
|
|
326
326
|
stack.each do |parent, hash|
|
data/lib/httparty/version.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
+
|
3
|
+
describe "Core Extensions" do
|
4
|
+
describe Hash do
|
5
|
+
describe "#to_params" do
|
6
|
+
def should_be_same_params(query_string, expected)
|
7
|
+
query_string.split(/&/).sort.should == expected.split(/&/).sort
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should encode characters in URL parameters" do
|
11
|
+
{:q => "?&\" +"}.to_params.should == "q=%3F%26%22%20%2B"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should handle multiple parameters" do
|
15
|
+
should_be_same_params({:q1 => "p1", :q2 => "p2"}.to_params, "q1=p1&q2=p2")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should handle nested hashes like rails does" do
|
19
|
+
should_be_same_params({
|
20
|
+
:name => "Bob",
|
21
|
+
:address => {
|
22
|
+
:street => '111 Ruby Ave.',
|
23
|
+
:city => 'Ruby Central',
|
24
|
+
:phones => ['111-111-1111', '222-222-2222']
|
25
|
+
}
|
26
|
+
}.to_params, "name=Bob&address[city]=Ruby%20Central&address[phones][]=111-111-1111&address[phones][]=222-222-2222&address[street]=111%20Ruby%20Ave.")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
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.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- README
|
86
86
|
- setup.rb
|
87
87
|
- spec/as_buggery_spec.rb
|
88
|
+
- spec/core_extensions_spec.rb
|
88
89
|
- spec/fixtures/delicious.xml
|
89
90
|
- spec/fixtures/empty.xml
|
90
91
|
- spec/fixtures/google.html
|