jnunemaker-httparty 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- 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: jnunemaker-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
|
@@ -83,6 +83,7 @@ files:
|
|
83
83
|
- README
|
84
84
|
- setup.rb
|
85
85
|
- spec/as_buggery_spec.rb
|
86
|
+
- spec/core_extensions_spec.rb
|
86
87
|
- spec/fixtures/delicious.xml
|
87
88
|
- spec/fixtures/empty.xml
|
88
89
|
- spec/fixtures/google.html
|