afmotion 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/AFMotion.gemspec +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +18 -3
- data/lib/afmotion/http_client.rb +25 -1
- data/lib/afmotion/version.rb +1 -1
- data/spec/http_client_spec.rb +28 -4
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWRhODIzZDU2NDU2NTgyODMyYmFlNTBhMWM4N2ZkODg1YzQ0NzI1Nw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTg1ZGUwYjNkZmViM2EyZWNlYTJiNmFjM2E0ZDc2YzUxNGJmMGQ5OQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTBhZDVmZjVhYmM5ZjU0OTIyMWUwMzEzZjQ0N2JkOGIzYWE1NmNiNzkzZDZh
|
10
|
+
ZjM1N2M5ZDQxYjVkYTllODU4MzJkYmU4MTM2NzAwMjM3OTQ2ODU4MTdkNzI3
|
11
|
+
N2U2N2YwMjczN2MxZjk2Mzg2ZjAzODUzYmRkMjFkOTkzZjYyNDI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGIwZGFhYjI0NzYxNGIxZWI3MDQ0NzlmZjZkODNmMTQ3NzUxNjdhNTA4NGM5
|
14
|
+
M2U1NTgyZTdhMWQwZjhiZjczMjFiMWRhYWQ3MjA5MmMzNzJmNTZmMWY0NGM1
|
15
|
+
MjllNTE5Mzc2YmUxZmY1MGI0ZjlkZGI3ZTkyNzM5ZTFlNmNjOTQ=
|
data/AFMotion.gemspec
CHANGED
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.homepage = "https://github.com/clayallsopp/AFMotion"
|
10
10
|
s.summary = "A RubyMotion Wrapper for AFNetworking"
|
11
11
|
s.description = "A RubyMotion Wrapper for AFNetworking"
|
12
|
+
s.license = 'MIT'
|
12
13
|
|
13
14
|
s.files = `git ls-files`.split($\).delete_if {|x| x.include? "example"}
|
14
15
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -176,14 +176,14 @@ end
|
|
176
176
|
|
177
177
|
#### Multipart Requests
|
178
178
|
|
179
|
-
`AFHTTPClient` supports multipart form requests (i.e. for image uploading). Simply prepend `multipart
|
179
|
+
`AFHTTPClient` supports multipart form requests (i.e. for image uploading). Simply prepend `multipart!` to any other request method and it'll convert your parameters into properly encoded multipart data:
|
180
180
|
|
181
181
|
```ruby
|
182
182
|
# an instance of UIImage
|
183
183
|
image = my_function.get_image
|
184
184
|
data = UIImagePNGRepresentation(image)
|
185
185
|
|
186
|
-
client.multipart
|
186
|
+
client.multipart!.post("avatars") do |result, form_data|
|
187
187
|
if form_data
|
188
188
|
# Called before request runs
|
189
189
|
# see: https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-FAQ
|
@@ -199,7 +199,7 @@ end
|
|
199
199
|
If you want to track upload progress, you can add a third callback argument which returns the upload percentage between 0.0 and 1.0:
|
200
200
|
|
201
201
|
```ruby
|
202
|
-
client.multipart
|
202
|
+
client.multipart!.post("avatars") do |result, form_data, progress|
|
203
203
|
if form_data
|
204
204
|
# Called before request runs
|
205
205
|
# see: https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-FAQ
|
@@ -211,6 +211,21 @@ client.multipart.post("avatars") do |result, form_data, progress|
|
|
211
211
|
end
|
212
212
|
```
|
213
213
|
|
214
|
+
#### Headers
|
215
|
+
|
216
|
+
You can set default HTTP headers using `client.headers`, which is sort of like a `Hash`:
|
217
|
+
|
218
|
+
```ruby
|
219
|
+
client.headers["Accept"]
|
220
|
+
#=> "application/json"
|
221
|
+
|
222
|
+
client.headers["Accept"] = "something_else"
|
223
|
+
#=> "application/something_else"
|
224
|
+
|
225
|
+
client.headers.delete "Accept"
|
226
|
+
#=> "application/something_else"
|
227
|
+
```
|
228
|
+
|
214
229
|
#### Client Operations
|
215
230
|
|
216
231
|
If you want to grab an `AFURLConnectionOperation` from your client instance, use `create_operation` or `create_multipart_operation`:
|
data/lib/afmotion/http_client.rb
CHANGED
@@ -149,7 +149,7 @@ class AFHTTPClient
|
|
149
149
|
})
|
150
150
|
end
|
151
151
|
|
152
|
-
def multipart
|
152
|
+
def multipart!
|
153
153
|
@multipart = true
|
154
154
|
self
|
155
155
|
end
|
@@ -174,6 +174,30 @@ class AFHTTPClient
|
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
+
class HeaderWrapper
|
178
|
+
def initialize(client)
|
179
|
+
@client = WeakRef.new(client)
|
180
|
+
end
|
181
|
+
|
182
|
+
def [](header)
|
183
|
+
@client.defaultValueForHeader(header)
|
184
|
+
end
|
185
|
+
|
186
|
+
def []=(header, value)
|
187
|
+
@client.setDefaultHeader(header, value: value)
|
188
|
+
end
|
189
|
+
|
190
|
+
def delete(header)
|
191
|
+
value = self[header]
|
192
|
+
@client.setDefaultHeader(header, value: nil)
|
193
|
+
value
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
def headers
|
198
|
+
@header_wrapper ||= HeaderWrapper.new(self)
|
199
|
+
end
|
200
|
+
|
177
201
|
private
|
178
202
|
# To force RubyMotion pre-compilation of these methods
|
179
203
|
def dummy
|
data/lib/afmotion/version.rb
CHANGED
data/spec/http_client_spec.rb
CHANGED
@@ -102,14 +102,38 @@ describe "AFHTTPClient" do
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
describe "#headers" do
|
106
|
+
describe "#[]" do
|
107
|
+
it "should return a header" do
|
108
|
+
@client.setDefaultHeader("test", value: "test_value")
|
109
|
+
@client.headers["test"].should == "test_value"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "#[]=" do
|
114
|
+
it "should set a header" do
|
115
|
+
@client.headers["test"] = "test_set_value"
|
116
|
+
@client.defaultValueForHeader("test").should == "test_set_value"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#delete" do
|
121
|
+
it "should remove a header" do
|
122
|
+
@client.setDefaultHeader("test", value: "test_value")
|
123
|
+
@client.headers.delete("test").should == "test_value"
|
124
|
+
@client.defaultValueForHeader("test").should == nil
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
105
129
|
describe "#multipart" do
|
106
130
|
it "should trigger multipart logic" do
|
107
|
-
@client.multipart
|
131
|
+
@client.multipart!.should == @client
|
108
132
|
@client.instance_variable_get("@multipart").should == true
|
109
133
|
end
|
110
134
|
|
111
135
|
it "should trigger multipart request" do
|
112
|
-
@client.multipart
|
136
|
+
@client.multipart!.post("", test: "Herp") do |result|
|
113
137
|
@result = result
|
114
138
|
resume
|
115
139
|
end
|
@@ -121,7 +145,7 @@ describe "AFHTTPClient" do
|
|
121
145
|
end
|
122
146
|
|
123
147
|
it "should work with form data" do
|
124
|
-
@client.multipart
|
148
|
+
@client.multipart!.post("", test: "Herp") do |result, form_data|
|
125
149
|
if result
|
126
150
|
resume
|
127
151
|
else
|
@@ -138,7 +162,7 @@ describe "AFHTTPClient" do
|
|
138
162
|
image = UIImage.imageNamed("test")
|
139
163
|
@data = UIImagePNGRepresentation(image)
|
140
164
|
@client = AFHTTPClient.clientWithBaseURL("http://bing.com/".to_url)
|
141
|
-
@client.multipart
|
165
|
+
@client.multipart!.post("", test: "Herp") do |result, form_data, progress|
|
142
166
|
if form_data
|
143
167
|
form_data.appendPartWithFileData(@data, name: "test", fileName:"test.png", mimeType: "image/png")
|
144
168
|
elsif progress
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: afmotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clay Allsopp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: motion-cocoapods
|
@@ -69,7 +69,8 @@ files:
|
|
69
69
|
- spec/operation_spec.rb
|
70
70
|
- vendor/Podfile.lock
|
71
71
|
homepage: https://github.com/clayallsopp/AFMotion
|
72
|
-
licenses:
|
72
|
+
licenses:
|
73
|
+
- MIT
|
73
74
|
metadata: {}
|
74
75
|
post_install_message:
|
75
76
|
rdoc_options: []
|