httmultiparty 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -5
- data/lib/httmultiparty.rb +38 -3
- data/lib/httmultiparty/version.rb +1 -1
- metadata +3 -5
data/README.md
CHANGED
@@ -13,16 +13,16 @@ When you pass a query with an instance of a File as a value for a PUT or POST re
|
|
13
13
|
use a bit of magic and multipart-post to execute a multipart upload:</p>
|
14
14
|
|
15
15
|
<pre>
|
16
|
-
require '
|
16
|
+
require 'httmultiparty'
|
17
17
|
class SomeClient
|
18
18
|
include HTTMultiParty
|
19
19
|
base_uri 'http://localhost:3000'
|
20
20
|
end
|
21
21
|
|
22
22
|
response = SomeClient.post('/', :query => {
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
:foo => 'bar',
|
24
|
+
:somefile => File.new('README.md')
|
25
|
+
})
|
26
26
|
</pre>
|
27
27
|
|
28
|
-
Aside from that it provides all the usual HTTParty gimmicks.
|
28
|
+
Aside from that it provides all the usual HTTParty gimmicks.
|
data/lib/httmultiparty.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
gem 'httparty'
|
2
2
|
gem 'multipart-post'
|
3
|
+
require 'tempfile'
|
3
4
|
require 'httparty'
|
4
5
|
require 'net/http/post/multipart'
|
5
6
|
|
6
7
|
module HTTMultiParty
|
8
|
+
TRANSFORMABLE_TYPES = [File, Tempfile]
|
9
|
+
|
7
10
|
QUERY_STRING_NORMALIZER = Proc.new do |params|
|
8
11
|
HTTMultiParty.flatten_params(params).map do |(k,v)|
|
9
|
-
[k,
|
12
|
+
[k, TRANSFORMABLE_TYPES.include?(v.class) ? HTTMultiParty.file_to_upload_io(v) : v]
|
10
13
|
end
|
11
14
|
end
|
12
15
|
|
@@ -16,7 +19,11 @@ module HTTMultiParty
|
|
16
19
|
end
|
17
20
|
|
18
21
|
def self.file_to_upload_io(file)
|
19
|
-
|
22
|
+
if file.respond_to? :original_filename
|
23
|
+
filename = file.original_filename
|
24
|
+
else
|
25
|
+
filename = File.split(file.path).last
|
26
|
+
end
|
20
27
|
content_type = 'application/octet-stream'
|
21
28
|
UploadIO.new(file, content_type, filename)
|
22
29
|
end
|
@@ -39,6 +46,30 @@ module HTTMultiParty
|
|
39
46
|
flattened
|
40
47
|
end
|
41
48
|
|
49
|
+
def self.get(*args)
|
50
|
+
Basement.get(*args)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.post(*args)
|
54
|
+
Basement.post(*args)
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.put(*args)
|
58
|
+
Basement.put(*args)
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.delete(*args)
|
62
|
+
Basement.delete(*args)
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.head(*args)
|
66
|
+
Basement.head(*args)
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.options(*args)
|
70
|
+
Basement.options(*args)
|
71
|
+
end
|
72
|
+
|
42
73
|
module ClassMethods
|
43
74
|
def post(path, options={})
|
44
75
|
method = Net::HTTP::Post
|
@@ -63,10 +94,14 @@ module HTTMultiParty
|
|
63
94
|
private
|
64
95
|
def hash_contains_files?(hash)
|
65
96
|
hash.is_a?(Hash) && HTTMultiParty.flatten_params(hash).select do |(k,v)|
|
66
|
-
|
97
|
+
TRANSFORMABLE_TYPES.include?(v.class) || v.is_a?(UploadIO)
|
67
98
|
end.size > 0
|
68
99
|
end
|
69
100
|
end
|
101
|
+
|
102
|
+
class Basement
|
103
|
+
include HTTMultiParty
|
104
|
+
end
|
70
105
|
end
|
71
106
|
|
72
107
|
require 'httmultiparty/version'
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: httmultiparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Johannes Wagener
|
@@ -10,8 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
14
|
-
default_executable:
|
13
|
+
date: 2012-04-04 00:00:00 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: httparty
|
@@ -73,7 +72,6 @@ files:
|
|
73
72
|
- lib/httmultiparty/version.rb
|
74
73
|
- lib/httmultiparty.rb
|
75
74
|
- README.md
|
76
|
-
has_rdoc: true
|
77
75
|
homepage: http://github.com/jwagener/httmultiparty
|
78
76
|
licenses: []
|
79
77
|
|
@@ -97,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
95
|
requirements: []
|
98
96
|
|
99
97
|
rubyforge_project:
|
100
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.8.17
|
101
99
|
signing_key:
|
102
100
|
specification_version: 3
|
103
101
|
summary: HTTMultiParty is a thin wrapper around HTTParty to provide multipart uploads.
|