afmotion 0.9.0 → 2.0.0.rc1
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.
- checksums.yaml +6 -14
- data/AFMotion.gemspec +2 -1
- data/Gemfile.lock +22 -20
- data/README.md +72 -63
- data/Rakefile +1 -5
- data/lib/afmotion/client_shared.rb +90 -0
- data/lib/afmotion/http.rb +31 -71
- data/lib/afmotion/http_client.rb +96 -169
- data/lib/afmotion/http_result.rb +12 -3
- data/lib/afmotion/operation.rb +55 -69
- data/lib/afmotion/{image.rb → patch/UIImageView_url.rb} +0 -0
- data/lib/afmotion/serializer.rb +41 -0
- data/lib/afmotion/session_client.rb +128 -0
- data/lib/afmotion/version.rb +1 -1
- data/lib/afmotion.rb +7 -1
- data/spec/http_client_spec.rb +41 -41
- data/spec/http_spec.rb +0 -11
- data/spec/session_client_spec.rb +217 -0
- data/vendor/Podfile.lock +23 -4
- metadata +29 -15
- data/lib/afmotion/patch/NSURLRequest_params.rb +0 -49
- data/spec/ns_url_request_spec.rb +0 -41
- data/spec/operation_spec.rb +0 -41
data/spec/http_client_spec.rb
CHANGED
@@ -1,47 +1,52 @@
|
|
1
1
|
describe "AFMotion::ClientDSL" do
|
2
2
|
before do
|
3
|
-
@client =
|
3
|
+
@client = AFHTTPRequestOperationManager.alloc.initWithBaseURL("http://url".to_url)
|
4
4
|
@dsl = AFMotion::ClientDSL.new(@client)
|
5
5
|
end
|
6
6
|
|
7
7
|
describe "#header" do
|
8
8
|
it "should set header" do
|
9
9
|
@dsl.header "Accept", "application/json"
|
10
|
-
@client.
|
10
|
+
@client.requestSerializer.HTTPRequestHeaders["Accept"].should == "application/json"
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "#authorization" do
|
15
15
|
it "should set authorization" do
|
16
16
|
@dsl.authorization username: "clay", password: "test"
|
17
|
-
@client.
|
17
|
+
@client.requestSerializer.HTTPRequestHeaders["Authorization"].nil?.should == false
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
describe "#
|
22
|
-
it "should set
|
23
|
-
@dsl.
|
24
|
-
@client.
|
21
|
+
describe "#request_serializer" do
|
22
|
+
it "should set request_serializer if provided type" do
|
23
|
+
@dsl.request_serializer AFJSONRequestSerializer
|
24
|
+
@client.requestSerializer.is_a?(AFJSONRequestSerializer).should == true
|
25
25
|
end
|
26
26
|
|
27
|
-
it "should set
|
28
|
-
[["json",
|
29
|
-
@dsl.
|
30
|
-
@client.
|
27
|
+
it "should set request_serializer if provided string" do
|
28
|
+
[["json", AFJSONRequestSerializer], ["plist", AFPropertyListRequestSerializer]].each do |op, op_class|
|
29
|
+
@dsl.request_serializer op
|
30
|
+
@client.requestSerializer.is_a?(op_class).should == true
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
describe "#
|
36
|
-
it "should set
|
37
|
-
@dsl.
|
38
|
-
@client.
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should set
|
42
|
-
[["json",
|
43
|
-
|
44
|
-
|
35
|
+
describe "#response_serializer" do
|
36
|
+
it "should set response_serializer if provided type" do
|
37
|
+
@dsl.response_serializer AFJSONResponseSerializer
|
38
|
+
@client.responseSerializer.is_a?(AFJSONResponseSerializer).should == true
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should set response_serializer if provided string" do
|
42
|
+
[["json", AFJSONResponseSerializer],
|
43
|
+
["form", AFHTTPResponseSerializer],
|
44
|
+
["http", AFHTTPResponseSerializer],
|
45
|
+
["xml", AFXMLParserResponseSerializer],
|
46
|
+
["plist", AFPropertyListResponseSerializer],
|
47
|
+
["image", AFImageResponseSerializer]].each do |enc, enc_class|
|
48
|
+
@dsl.response_serializer enc
|
49
|
+
@client.responseSerializer.is_a?(enc_class).should == true
|
45
50
|
end
|
46
51
|
end
|
47
52
|
end
|
@@ -49,9 +54,9 @@ end
|
|
49
54
|
|
50
55
|
describe "AFMotion::Client" do
|
51
56
|
describe ".build" do
|
52
|
-
it "should return an
|
57
|
+
it "should return an AFHTTPRequestOperationManager" do
|
53
58
|
client = AFMotion::Client.build("http://url")
|
54
|
-
client.is_a?(
|
59
|
+
client.is_a?(AFHTTPRequestOperationManager).should == true
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
@@ -65,7 +70,7 @@ end
|
|
65
70
|
|
66
71
|
describe "AFHTTPClient" do
|
67
72
|
before do
|
68
|
-
@client =
|
73
|
+
@client = AFHTTPRequestOperationManager.alloc.initWithBaseURL("http://google.com/".to_url)
|
69
74
|
end
|
70
75
|
|
71
76
|
describe "URL Helpers" do
|
@@ -91,21 +96,21 @@ describe "AFHTTPClient" do
|
|
91
96
|
describe "#authorization=" do
|
92
97
|
it "should set basic auth" do
|
93
98
|
@client.authorization = {username: "clay", password: "pass"}
|
94
|
-
@client.
|
99
|
+
@client.requestSerializer.HTTPRequestHeaders["Authorization"].split[0].should == "Basic"
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
103
|
describe "#build_shared" do
|
99
104
|
it "should set AFMotion::Client.shared" do
|
100
105
|
@client.authorization = {token: "clay"}
|
101
|
-
@client.
|
106
|
+
@client.requestSerializer.HTTPRequestHeaders["Authorization"].split[0].should == "Token"
|
102
107
|
end
|
103
108
|
end
|
104
109
|
|
105
110
|
describe "#headers" do
|
106
111
|
describe "#[]" do
|
107
112
|
it "should return a header" do
|
108
|
-
@client.
|
113
|
+
@client.requestSerializer.setValue("test_value", forHTTPHeaderField: "test")
|
109
114
|
@client.headers["test"].should == "test_value"
|
110
115
|
end
|
111
116
|
end
|
@@ -113,29 +118,24 @@ describe "AFHTTPClient" do
|
|
113
118
|
describe "#[]=" do
|
114
119
|
it "should set a header" do
|
115
120
|
@client.headers["test"] = "test_set_value"
|
116
|
-
@client.
|
121
|
+
@client.requestSerializer.HTTPRequestHeaders["test"].should == "test_set_value"
|
117
122
|
end
|
118
123
|
end
|
119
124
|
|
120
125
|
describe "#delete" do
|
121
126
|
it "should remove a header" do
|
122
|
-
@client.
|
127
|
+
@client.requestSerializer.setValue("test_value", forHTTPHeaderField: "test")
|
123
128
|
@client.headers.delete("test").should == "test_value"
|
124
|
-
@client.
|
129
|
+
@client.requestSerializer.HTTPRequestHeaders["test"].should == nil
|
125
130
|
end
|
126
131
|
end
|
127
132
|
end
|
128
133
|
|
129
|
-
describe "#
|
130
|
-
it "should trigger multipart logic" do
|
131
|
-
@client.multipart!.should == @client
|
132
|
-
@client.instance_variable_get("@multipart").should == true
|
133
|
-
end
|
134
|
-
|
134
|
+
describe "#multipart_post" do
|
135
135
|
it "should trigger multipart request" do
|
136
|
-
@client.
|
136
|
+
@client.multipart_post("", test: "Herp") do |result, form_data|
|
137
137
|
@result = result
|
138
|
-
resume
|
138
|
+
resume if result
|
139
139
|
end
|
140
140
|
|
141
141
|
wait_max(10) do
|
@@ -145,7 +145,7 @@ describe "AFHTTPClient" do
|
|
145
145
|
end
|
146
146
|
|
147
147
|
it "should work with form data" do
|
148
|
-
@client.
|
148
|
+
@client.multipart_post("", test: "Herp") do |result, form_data|
|
149
149
|
if result
|
150
150
|
resume
|
151
151
|
else
|
@@ -161,8 +161,8 @@ describe "AFHTTPClient" do
|
|
161
161
|
it "should have upload callback with raw progress" do
|
162
162
|
image = UIImage.imageNamed("test")
|
163
163
|
@data = UIImagePNGRepresentation(image)
|
164
|
-
@client =
|
165
|
-
@client.
|
164
|
+
@client = AFHTTPRequestOperationManager.alloc.initWithBaseURL("http://bing.com/".to_url)
|
165
|
+
@client.multipart_post("", test: "Herp") do |result, form_data, progress|
|
166
166
|
if form_data
|
167
167
|
form_data.appendPartWithFileData(@data, name: "test", fileName:"test.png", mimeType: "image/png")
|
168
168
|
elsif progress
|
data/spec/http_spec.rb
CHANGED
@@ -24,17 +24,6 @@ describe "AFMotion" do
|
|
24
24
|
@result.nil?.should == false
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
28
|
-
it "should work with request" do
|
29
|
-
request = NSURLRequest.requestWithURL(NSURL.URLWithString("http://google.com"))
|
30
|
-
_module.get(request) do |result|
|
31
|
-
@result = result
|
32
|
-
resume
|
33
|
-
end
|
34
|
-
wait_max(10) do
|
35
|
-
@result.nil?.should == false
|
36
|
-
end
|
37
|
-
end
|
38
27
|
end
|
39
28
|
end
|
40
29
|
end
|
@@ -0,0 +1,217 @@
|
|
1
|
+
describe "AFMotion::SessionClientDSL" do
|
2
|
+
before do
|
3
|
+
@dsl = AFMotion::SessionClientDSL.new("http://url")
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "#header" do
|
7
|
+
it "should set header" do
|
8
|
+
@dsl.header "Accept", "application/json"
|
9
|
+
@dsl.to_session_manager.requestSerializer.HTTPRequestHeaders["Accept"].should == "application/json"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#authorization" do
|
14
|
+
it "should set authorization" do
|
15
|
+
@dsl.authorization username: "clay", password: "test"
|
16
|
+
@dsl.to_session_manager.requestSerializer.HTTPRequestHeaders["Authorization"].nil?.should == false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#request_serializer" do
|
21
|
+
it "should set request_serializer if provided type" do
|
22
|
+
@dsl.request_serializer AFJSONRequestSerializer
|
23
|
+
@dsl.to_session_manager.requestSerializer.is_a?(AFJSONRequestSerializer).should == true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should set request_serializer if provided string" do
|
27
|
+
[["json", AFJSONRequestSerializer], ["plist", AFPropertyListRequestSerializer]].each do |op, op_class|
|
28
|
+
@dsl.request_serializer op
|
29
|
+
@dsl.to_session_manager.requestSerializer.is_a?(op_class).should == true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#response_serializer" do
|
35
|
+
it "should set response_serializer if provided type" do
|
36
|
+
@dsl.response_serializer AFJSONResponseSerializer
|
37
|
+
@dsl.to_session_manager.responseSerializer.is_a?(AFJSONResponseSerializer).should == true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should set response_serializer if provided string" do
|
41
|
+
[["json", AFJSONResponseSerializer],
|
42
|
+
["form", AFHTTPResponseSerializer],
|
43
|
+
["http", AFHTTPResponseSerializer],
|
44
|
+
["xml", AFXMLParserResponseSerializer],
|
45
|
+
["plist", AFPropertyListResponseSerializer],
|
46
|
+
["image", AFImageResponseSerializer]].each do |enc, enc_class|
|
47
|
+
@dsl.response_serializer enc
|
48
|
+
@dsl.to_session_manager.responseSerializer.is_a?(enc_class).should == true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#session_configuration" do
|
54
|
+
describe "for default" do
|
55
|
+
it "should work" do
|
56
|
+
@dsl.session_configuration :default
|
57
|
+
@dsl.to_session_manager.sessionConfiguration.URLCache.diskCapacity.should > 0
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "for ephemeral" do
|
62
|
+
it "should work" do
|
63
|
+
@dsl.session_configuration :ephemeral
|
64
|
+
@dsl.to_session_manager.sessionConfiguration.URLCache.diskCapacity.should == 0
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "for background" do
|
69
|
+
it "should work" do
|
70
|
+
@dsl.session_configuration :background, "com.usepropeller.afmotion.test"
|
71
|
+
manager = @dsl.to_session_manager
|
72
|
+
manager.sessionConfiguration.sessionSendsLaunchEvents.should == true
|
73
|
+
manager.sessionConfiguration.identifier.should == "com.usepropeller.afmotion.test"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "for instances" do
|
78
|
+
it "should work" do
|
79
|
+
session_config = NSURLSessionConfiguration.defaultSessionConfiguration
|
80
|
+
session_config.identifier = "test"
|
81
|
+
@dsl.session_configuration session_config
|
82
|
+
@dsl.to_session_manager.sessionConfiguration.should == session_config
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "AFMotion::SessionClient" do
|
89
|
+
describe ".build" do
|
90
|
+
it "should return an AFHTTPSessionManager" do
|
91
|
+
client = AFMotion::SessionClient.build("http://url") do
|
92
|
+
end
|
93
|
+
client.is_a?(AFHTTPSessionManager).should == true
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe ".build_shared" do
|
98
|
+
it "should set AFMotion::SessionClient.shared" do
|
99
|
+
client = AFMotion::SessionClient.build_shared("http://url") do
|
100
|
+
end
|
101
|
+
AFMotion::SessionClient.shared.should == client
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "AFHTTPSessionManager" do
|
107
|
+
before do
|
108
|
+
@client = AFHTTPSessionManager.alloc.initWithBaseURL("http://google.com/".to_url,
|
109
|
+
sessionConfiguration: NSURLSessionConfiguration.defaultSessionConfiguration)
|
110
|
+
end
|
111
|
+
|
112
|
+
describe "URL Helpers" do
|
113
|
+
it "should exist" do
|
114
|
+
AFMotion::HTTP_METHODS.each do |method|
|
115
|
+
@client.respond_to?(method).should == true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# Pretty basic test
|
121
|
+
it "should work" do
|
122
|
+
@result = nil
|
123
|
+
@client.get("") do |result|
|
124
|
+
@result = result
|
125
|
+
resume
|
126
|
+
end
|
127
|
+
wait_max(10) do
|
128
|
+
@result.nil?.should == false
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "#authorization=" do
|
133
|
+
it "should set basic auth" do
|
134
|
+
@client.authorization = {username: "clay", password: "pass"}
|
135
|
+
@client.requestSerializer.HTTPRequestHeaders["Authorization"].split[0].should == "Basic"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#build_shared" do
|
140
|
+
it "should set AFMotion::Client.shared" do
|
141
|
+
@client.authorization = {token: "clay"}
|
142
|
+
@client.requestSerializer.HTTPRequestHeaders["Authorization"].split[0].should == "Token"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "#headers" do
|
147
|
+
describe "#[]" do
|
148
|
+
it "should return a header" do
|
149
|
+
@client.requestSerializer.setValue("test_value", forHTTPHeaderField: "test")
|
150
|
+
@client.headers["test"].should == "test_value"
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
describe "#[]=" do
|
155
|
+
it "should set a header" do
|
156
|
+
@client.headers["test"] = "test_set_value"
|
157
|
+
@client.requestSerializer.HTTPRequestHeaders["test"].should == "test_set_value"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
describe "#delete" do
|
162
|
+
it "should remove a header" do
|
163
|
+
@client.requestSerializer.setValue("test_value", forHTTPHeaderField: "test")
|
164
|
+
@client.headers.delete("test").should == "test_value"
|
165
|
+
@client.requestSerializer.HTTPRequestHeaders["test"].should == nil
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe "#multipart_post" do
|
171
|
+
it "should trigger multipart request" do
|
172
|
+
@client.multipart_post("", test: "Herp") do |result, form_data|
|
173
|
+
@result = result
|
174
|
+
resume if result
|
175
|
+
end
|
176
|
+
|
177
|
+
wait_max(10) do
|
178
|
+
@result.should.not == nil
|
179
|
+
@result.task.currentRequest.valueForHTTPHeaderField("Content-Type").include?("multipart/form-data").should == true
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should work with form data" do
|
184
|
+
@client.multipart_post("", test: "Herp") do |result, form_data|
|
185
|
+
if result
|
186
|
+
resume
|
187
|
+
else
|
188
|
+
@form_data = form_data
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
wait_max(10) do
|
193
|
+
@form_data.should.not == nil
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should have upload callback with raw progress" do
|
198
|
+
image = UIImage.imageNamed("test")
|
199
|
+
@data = UIImagePNGRepresentation(image)
|
200
|
+
@client = AFHTTPRequestOperationManager.alloc.initWithBaseURL("http://bing.com/".to_url)
|
201
|
+
@client.multipart_post("", test: "Herp") do |result, form_data, progress|
|
202
|
+
if form_data
|
203
|
+
form_data.appendPartWithFileData(@data, name: "test", fileName:"test.png", mimeType: "image/png")
|
204
|
+
elsif progress
|
205
|
+
@progress ||= progress
|
206
|
+
elsif result
|
207
|
+
resume
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
wait_max(20) do
|
212
|
+
@progress.should <= 1.0
|
213
|
+
@progress.should.not == nil
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
data/vendor/Podfile.lock
CHANGED
@@ -1,10 +1,29 @@
|
|
1
1
|
PODS:
|
2
|
-
- AFNetworking (
|
2
|
+
- AFNetworking (2.0.1):
|
3
|
+
- AFNetworking/NSURLConnection
|
4
|
+
- AFNetworking/NSURLSession
|
5
|
+
- AFNetworking/Reachability
|
6
|
+
- AFNetworking/Security
|
7
|
+
- AFNetworking/Serialization
|
8
|
+
- AFNetworking/UIKit
|
9
|
+
- AFNetworking/NSURLConnection (2.0.1):
|
10
|
+
- AFNetworking/Reachability
|
11
|
+
- AFNetworking/Security
|
12
|
+
- AFNetworking/Serialization
|
13
|
+
- AFNetworking/NSURLSession (2.0.1):
|
14
|
+
- AFNetworking/Reachability
|
15
|
+
- AFNetworking/Security
|
16
|
+
- AFNetworking/Serialization
|
17
|
+
- AFNetworking/Reachability (2.0.1)
|
18
|
+
- AFNetworking/Security (2.0.1)
|
19
|
+
- AFNetworking/Serialization (2.0.1)
|
20
|
+
- AFNetworking/UIKit (2.0.1):
|
21
|
+
- AFNetworking/NSURLConnection
|
3
22
|
|
4
23
|
DEPENDENCIES:
|
5
|
-
- AFNetworking
|
24
|
+
- AFNetworking (~> 2.0.0)
|
6
25
|
|
7
26
|
SPEC CHECKSUMS:
|
8
|
-
AFNetworking:
|
27
|
+
AFNetworking: a6f11ac4ac087303e6ff87adc1ba57b0dac20ef8
|
9
28
|
|
10
|
-
COCOAPODS: 0.
|
29
|
+
COCOAPODS: 0.26.2
|
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: 2.0.0.rc1
|
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-
|
11
|
+
date: 2013-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: motion-cocoapods
|
@@ -16,26 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: motion-require
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.7
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.7
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
45
|
+
- - '>='
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- -
|
52
|
+
- - '>='
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
description: A RubyMotion Wrapper for AFNetworking
|
@@ -54,19 +68,20 @@ files:
|
|
54
68
|
- Rakefile
|
55
69
|
- app/app_delegate.rb
|
56
70
|
- lib/afmotion.rb
|
71
|
+
- lib/afmotion/client_shared.rb
|
57
72
|
- lib/afmotion/http.rb
|
58
73
|
- lib/afmotion/http_client.rb
|
59
74
|
- lib/afmotion/http_result.rb
|
60
|
-
- lib/afmotion/image.rb
|
61
75
|
- lib/afmotion/operation.rb
|
62
76
|
- lib/afmotion/patch/NSString_NSUrl.rb
|
63
|
-
- lib/afmotion/patch/
|
77
|
+
- lib/afmotion/patch/UIImageView_url.rb
|
78
|
+
- lib/afmotion/serializer.rb
|
79
|
+
- lib/afmotion/session_client.rb
|
64
80
|
- lib/afmotion/version.rb
|
65
81
|
- resources/test.png
|
66
82
|
- spec/http_client_spec.rb
|
67
83
|
- spec/http_spec.rb
|
68
|
-
- spec/
|
69
|
-
- spec/operation_spec.rb
|
84
|
+
- spec/session_client_spec.rb
|
70
85
|
- vendor/Podfile.lock
|
71
86
|
homepage: https://github.com/clayallsopp/AFMotion
|
72
87
|
licenses:
|
@@ -78,14 +93,14 @@ require_paths:
|
|
78
93
|
- lib
|
79
94
|
required_ruby_version: !ruby/object:Gem::Requirement
|
80
95
|
requirements:
|
81
|
-
- -
|
96
|
+
- - '>='
|
82
97
|
- !ruby/object:Gem::Version
|
83
98
|
version: '0'
|
84
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
100
|
requirements:
|
86
|
-
- -
|
101
|
+
- - '>'
|
87
102
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
103
|
+
version: 1.3.1
|
89
104
|
requirements: []
|
90
105
|
rubyforge_project:
|
91
106
|
rubygems_version: 2.0.3
|
@@ -95,5 +110,4 @@ summary: A RubyMotion Wrapper for AFNetworking
|
|
95
110
|
test_files:
|
96
111
|
- spec/http_client_spec.rb
|
97
112
|
- spec/http_spec.rb
|
98
|
-
- spec/
|
99
|
-
- spec/operation_spec.rb
|
113
|
+
- spec/session_client_spec.rb
|
@@ -1,49 +0,0 @@
|
|
1
|
-
class NSMutableURLRequest
|
2
|
-
alias_method :url, :URL
|
3
|
-
|
4
|
-
def url=(url)
|
5
|
-
self.setURL(url.to_url)
|
6
|
-
end
|
7
|
-
|
8
|
-
def content_type=(content_type)
|
9
|
-
self.setValue(content_type, forHTTPHeaderField: "Content-Type")
|
10
|
-
end
|
11
|
-
|
12
|
-
def parameters=(params = {})
|
13
|
-
method = self.HTTPMethod
|
14
|
-
|
15
|
-
af_encoding = params[:__encoding__] || AFFormURLParameterEncoding
|
16
|
-
string_encoding = params[:__string_encoding__] || NSUTF8StringEncoding
|
17
|
-
|
18
|
-
params.delete :__encoding__
|
19
|
-
params.delete :__string_encoding__
|
20
|
-
|
21
|
-
use_url_based_params = ["GET", "HEAD", "DELETE", "PUT"].member?(method)
|
22
|
-
|
23
|
-
if use_url_based_params && !params.empty?
|
24
|
-
url_string = String.new(self.url.absoluteString)
|
25
|
-
has_query = url_string.rangeOfString("?").location == NSNotFound
|
26
|
-
format = has_query ? "?" : "&"
|
27
|
-
encoded = AFQueryStringFromParametersWithEncoding(params, string_encoding)
|
28
|
-
self.url = (url_string << format) << encoded
|
29
|
-
elsif !use_url_based_params
|
30
|
-
charset = CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(string_encoding))
|
31
|
-
error = Pointer.new(:object)
|
32
|
-
case af_encoding
|
33
|
-
when AFFormURLParameterEncoding
|
34
|
-
self.content_type = "application/x-www-form-urlencoded; charset=%@" << charset
|
35
|
-
self.HTTPBody = AFQueryStringFromParametersWithEncoding(params, string_encoding).dataUsingEncoding(string_encoding)
|
36
|
-
when AFJSONParameterEncoding
|
37
|
-
self.content_type = "application/json; charset=%@" << charset
|
38
|
-
self.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: 0, error: error)
|
39
|
-
when AFPropertyListParameterEncoding
|
40
|
-
self.content_type = "application/x-plist; charset=%@" << charset
|
41
|
-
self.HTTPBody = NSPropertyListSerialization.dataWithPropertyList(params, format: NSPropertyListXMLFormat_v1_0, options: 0, error: error)
|
42
|
-
end
|
43
|
-
|
44
|
-
if error[0]
|
45
|
-
p "NSURLRequest #{self.inspect}#parameters=#{params.inspect} ERROR: #{error.localizedDescription}"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
data/spec/ns_url_request_spec.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
describe "NSMutableURLRequest" do
|
2
|
-
describe "parameters=" do
|
3
|
-
before do
|
4
|
-
@base_url = "http://google.com"
|
5
|
-
end
|
6
|
-
|
7
|
-
["GET", "HEAD", "DELETE", "PUT"].each do |method|
|
8
|
-
it "should work with #{method} requests" do
|
9
|
-
@request = NSMutableURLRequest.requestWithURL(NSURL.URLWithString(@base_url))
|
10
|
-
|
11
|
-
@request.HTTPMethod = method
|
12
|
-
|
13
|
-
@request.parameters = {herp: "derp", "another" => 3}
|
14
|
-
@request.url.absoluteString.should == "http://google.com?herp=derp&another=3"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
[:default, :URL, :JSON, :XML].each do |encoding|
|
19
|
-
it "POST should work with #{encoding} encoding" do
|
20
|
-
@request = NSMutableURLRequest.requestWithURL(NSURL.URLWithString(@base_url))
|
21
|
-
@request.HTTPMethod = "POST"
|
22
|
-
|
23
|
-
parameters = {herp: "derp", "another" => 3}
|
24
|
-
case encoding
|
25
|
-
when :URL
|
26
|
-
@request.parameters = parameters.merge({__encoding__: AFFormURLParameterEncoding})
|
27
|
-
String.new(@request.HTTPBody).should == "herp=derp&another=3"
|
28
|
-
when :JSON
|
29
|
-
@request.parameters = parameters.merge({__encoding__: AFJSONParameterEncoding})
|
30
|
-
String.new(@request.HTTPBody).should == "{\"herp\":\"derp\",\"another\":3}"
|
31
|
-
when :XML
|
32
|
-
@request.parameters = parameters.merge({__encoding__: AFPropertyListParameterEncoding})
|
33
|
-
String.new(@request.HTTPBody).should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>another</key>\n\t<integer>3</integer>\n\t<key>herp</key>\n\t<string>derp</string>\n</dict>\n</plist>\n"
|
34
|
-
else
|
35
|
-
@request.parameters = parameters
|
36
|
-
String.new(@request.HTTPBody).should == "herp=derp&another=3"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|