afmotion 2.6 → 3.0
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 +5 -13
- data/.gitignore +2 -1
- data/AFMotion.gemspec +2 -2
- data/README.md +40 -46
- data/Rakefile +3 -2
- data/lib/afmotion.rb +1 -1
- data/lib/afmotion/client_shared.rb +63 -79
- data/lib/afmotion/ext/AFHTTPSessionManager.rb +73 -0
- data/lib/afmotion/{patch → ext}/NSString_NSUrl.rb +0 -0
- data/lib/afmotion/{patch → ext}/UIImageView_url.rb +0 -0
- data/lib/afmotion/http.rb +26 -11
- data/lib/afmotion/http_result.rb +11 -18
- data/lib/afmotion/operation.rb +3 -52
- data/lib/afmotion/serializer.rb +0 -2
- data/lib/afmotion/session_client.rb +15 -116
- data/lib/afmotion/session_client_dsl.rb +143 -0
- data/lib/afmotion/version.rb +1 -1
- data/motionuser12_avatar.png +0 -0
- data/motionuser12_avatar@2x.png +0 -0
- data/railsuser3_avatar.png +0 -0
- data/railsuser3_avatar@2x.png +0 -0
- data/spec/http_spec.rb +32 -2
- data/spec/integration_spec.rb +2 -2
- data/spec/session_client_spec.rb +51 -23
- data/swiftlytalking4_avatar.png +0 -0
- data/swiftlytalking4_avatar@2x.png +0 -0
- data/vendor/Podfile.lock +20 -20
- metadata +29 -26
- data/Gemfile.lock +0 -74
- data/lib/afmotion/http_client.rb +0 -136
- data/spec/http_client_spec.rb +0 -225
data/lib/afmotion/version.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/spec/http_spec.rb
CHANGED
@@ -4,6 +4,19 @@ describe "AFMotion" do
|
|
4
4
|
|
5
5
|
modules.each do |_module|
|
6
6
|
describe _module.to_s do
|
7
|
+
extend WebStub::SpecHelpers
|
8
|
+
|
9
|
+
before do
|
10
|
+
disable_network_access!
|
11
|
+
@result = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
after do
|
15
|
+
enable_network_access!
|
16
|
+
reset_stubs
|
17
|
+
end
|
18
|
+
|
19
|
+
|
7
20
|
it "should have all the HTTP methods" do
|
8
21
|
AFMotion::HTTP_METHODS.each do |method|
|
9
22
|
_module.respond_to?(method).should == true
|
@@ -16,7 +29,7 @@ describe "AFMotion" do
|
|
16
29
|
end
|
17
30
|
|
18
31
|
it "should work with string" do
|
19
|
-
_module.get("
|
32
|
+
_module.get("https://google.com") do |result|
|
20
33
|
@result = result
|
21
34
|
resume
|
22
35
|
end
|
@@ -25,6 +38,23 @@ describe "AFMotion" do
|
|
25
38
|
end
|
26
39
|
end
|
27
40
|
end
|
41
|
+
|
42
|
+
describe ".head" do
|
43
|
+
before do
|
44
|
+
@result = nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should work with string" do
|
48
|
+
_module.head("http://google.com") do |result|
|
49
|
+
@result = result
|
50
|
+
resume
|
51
|
+
end
|
52
|
+
wait_max(10) do
|
53
|
+
@result.nil?.should == false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
28
58
|
end
|
29
59
|
end
|
30
60
|
|
@@ -45,4 +75,4 @@ describe "AFMotion" do
|
|
45
75
|
end
|
46
76
|
end
|
47
77
|
end
|
48
|
-
end
|
78
|
+
end
|
data/spec/integration_spec.rb
CHANGED
@@ -52,7 +52,7 @@ describe "AFMotion" do
|
|
52
52
|
response_serializer :json
|
53
53
|
end
|
54
54
|
|
55
|
-
client.get(path, nil) do |result|
|
55
|
+
client.get(path, params: nil) do |result|
|
56
56
|
@result = result
|
57
57
|
@object = result.object
|
58
58
|
resume
|
@@ -74,4 +74,4 @@ describe "AFMotion" do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
77
|
-
end
|
77
|
+
end
|
data/spec/session_client_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
describe "AFMotion::SessionClientDSL" do
|
2
2
|
before do
|
3
|
-
@dsl = AFMotion::SessionClientDSL.new("
|
3
|
+
@dsl = AFMotion::SessionClientDSL.new("https://url")
|
4
4
|
end
|
5
5
|
|
6
6
|
describe "#header" do
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
describe "AFMotion::SessionClient" do
|
99
99
|
describe ".build" do
|
100
100
|
it "should return an AFHTTPSessionManager" do
|
101
|
-
client = AFMotion::SessionClient.build("
|
101
|
+
client = AFMotion::SessionClient.build("https://url") do
|
102
102
|
end
|
103
103
|
client.is_a?(AFHTTPSessionManager).should == true
|
104
104
|
end
|
@@ -106,7 +106,7 @@ describe "AFMotion::SessionClient" do
|
|
106
106
|
|
107
107
|
describe ".build_shared" do
|
108
108
|
it "should set AFMotion::SessionClient.shared" do
|
109
|
-
client = AFMotion::SessionClient.build_shared("
|
109
|
+
client = AFMotion::SessionClient.build_shared("https://url") do
|
110
110
|
end
|
111
111
|
AFMotion::SessionClient.shared.should == client
|
112
112
|
end
|
@@ -114,9 +114,19 @@ describe "AFMotion::SessionClient" do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
describe "AFHTTPSessionManager" do
|
117
|
+
extend WebStub::SpecHelpers
|
118
|
+
|
117
119
|
before do
|
118
|
-
@
|
119
|
-
|
120
|
+
@url = "https://url.com"
|
121
|
+
@client = AFMotion::SessionClient.build(@url)
|
122
|
+
|
123
|
+
disable_network_access!
|
124
|
+
@result = nil
|
125
|
+
end
|
126
|
+
|
127
|
+
after do
|
128
|
+
enable_network_access!
|
129
|
+
reset_stubs
|
120
130
|
end
|
121
131
|
|
122
132
|
describe "URL Helpers" do
|
@@ -129,13 +139,15 @@ describe "AFHTTPSessionManager" do
|
|
129
139
|
|
130
140
|
# Pretty basic test
|
131
141
|
it "should work" do
|
132
|
-
@
|
142
|
+
stub_request(:get, @url).to_return(body: "")
|
143
|
+
|
133
144
|
@client.get("") do |result|
|
134
145
|
@result = result
|
135
146
|
resume
|
136
147
|
end
|
137
148
|
wait_max(10) do
|
138
149
|
@result.nil?.should == false
|
150
|
+
@result.error.should == nil
|
139
151
|
end
|
140
152
|
end
|
141
153
|
|
@@ -146,13 +158,6 @@ describe "AFHTTPSessionManager" do
|
|
146
158
|
end
|
147
159
|
end
|
148
160
|
|
149
|
-
describe "#build_shared" do
|
150
|
-
it "should set AFMotion::Client.shared" do
|
151
|
-
@client.authorization = {token: "clay"}
|
152
|
-
@client.requestSerializer.HTTPRequestHeaders["Authorization"].split[0].should == "Token"
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
161
|
describe "#headers" do
|
157
162
|
describe "#[]" do
|
158
163
|
it "should return a header" do
|
@@ -180,19 +185,29 @@ describe "AFHTTPSessionManager" do
|
|
180
185
|
["multipart_post", "multipart_put"].each do |multipart_method|
|
181
186
|
describe "##{multipart_method}" do
|
182
187
|
it "should trigger multipart request" do
|
183
|
-
|
188
|
+
stub_request(multipart_method.gsub(/^multipart_/, "").to_sym, @url).to_return(body: "", delay: 0.5)
|
189
|
+
|
190
|
+
@client.send(multipart_method, "", params: { test: "Herp" }) do |result, form_data|
|
184
191
|
@result = result
|
185
192
|
resume if result
|
186
193
|
end
|
187
194
|
|
188
195
|
wait_max(10) do
|
189
196
|
@result.should.not == nil
|
197
|
+
|
198
|
+
if @result.error
|
199
|
+
puts "HTTP ERROR: #{@result.error.localizedDescription}"
|
200
|
+
end
|
201
|
+
|
202
|
+
@result.error.should == nil
|
190
203
|
@result.task.currentRequest.valueForHTTPHeaderField("Content-Type").include?("multipart/form-data").should == true
|
191
204
|
end
|
192
205
|
end
|
193
206
|
|
194
207
|
it "should work with form data" do
|
195
|
-
|
208
|
+
stub_request(multipart_method.gsub(/^multipart_/, "").to_sym, @url).to_return(body: "", delay: 0.5)
|
209
|
+
|
210
|
+
@client.send(multipart_method, "", params: { test: "Herp" }) do |result, form_data|
|
196
211
|
if result
|
197
212
|
resume
|
198
213
|
else
|
@@ -205,16 +220,20 @@ describe "AFHTTPSessionManager" do
|
|
205
220
|
end
|
206
221
|
end
|
207
222
|
|
208
|
-
it "should have upload callback with
|
223
|
+
it "should have upload callback with progress" do
|
224
|
+
stub_request(multipart_method.gsub(/^multipart_/, "").to_sym, @url).to_return(json: "", delay: 0.5)
|
225
|
+
|
209
226
|
image = UIImage.imageNamed("test")
|
210
227
|
@data = UIImagePNGRepresentation(image)
|
211
228
|
@file_added = nil
|
212
|
-
|
229
|
+
progress_block = proc do |progress|
|
230
|
+
@progress = progress
|
231
|
+
end
|
232
|
+
|
233
|
+
@client.send(multipart_method, "", params: { test: "Herp" }, progress_block: progress_block) do |result, form_data|
|
213
234
|
if form_data
|
214
235
|
@file_added = true
|
215
236
|
form_data.appendPartWithFileData(@data, name: "test", fileName:"test.png", mimeType: "image/png")
|
216
|
-
elsif progress
|
217
|
-
@progress ||= progress
|
218
237
|
elsif result
|
219
238
|
@result = result
|
220
239
|
resume
|
@@ -222,11 +241,20 @@ describe "AFHTTPSessionManager" do
|
|
222
241
|
end
|
223
242
|
|
224
243
|
wait_max(20) do
|
225
|
-
@
|
226
|
-
|
227
|
-
|
228
|
-
@
|
244
|
+
@result.should.not == nil
|
245
|
+
|
246
|
+
if @result.error
|
247
|
+
puts "HTTP ERROR: #{@result.error.localizedDescription}"
|
229
248
|
end
|
249
|
+
|
250
|
+
@result.error.should == nil
|
251
|
+
@file_added.should == true
|
252
|
+
|
253
|
+
# with updated webstub, I wasn't able to get progress to report at all (but it works in the sample app)
|
254
|
+
# if (Object.const_defined?("UIDevice") && UIDevice.currentDevice.model =~ /simulator/i).nil?
|
255
|
+
# @progress.should.not == nil
|
256
|
+
# @progress.fractionCompleted.should <= 1.0
|
257
|
+
# end
|
230
258
|
@result.should.not == nil
|
231
259
|
end
|
232
260
|
end
|
Binary file
|
Binary file
|
data/vendor/Podfile.lock
CHANGED
@@ -1,30 +1,30 @@
|
|
1
1
|
PODS:
|
2
|
-
- AFNetworking (
|
3
|
-
- AFNetworking/
|
4
|
-
- AFNetworking/
|
5
|
-
- AFNetworking/
|
6
|
-
- AFNetworking/
|
7
|
-
- AFNetworking/
|
8
|
-
|
9
|
-
- AFNetworking/NSURLConnection (2.5.0):
|
2
|
+
- AFNetworking (4.0.1):
|
3
|
+
- AFNetworking/NSURLSession (= 4.0.1)
|
4
|
+
- AFNetworking/Reachability (= 4.0.1)
|
5
|
+
- AFNetworking/Security (= 4.0.1)
|
6
|
+
- AFNetworking/Serialization (= 4.0.1)
|
7
|
+
- AFNetworking/UIKit (= 4.0.1)
|
8
|
+
- AFNetworking/NSURLSession (4.0.1):
|
10
9
|
- AFNetworking/Reachability
|
11
10
|
- AFNetworking/Security
|
12
11
|
- AFNetworking/Serialization
|
13
|
-
- AFNetworking/
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
- AFNetworking/Reachability (2.5.0)
|
18
|
-
- AFNetworking/Security (2.5.0)
|
19
|
-
- AFNetworking/Serialization (2.5.0)
|
20
|
-
- AFNetworking/UIKit (2.5.0):
|
21
|
-
- AFNetworking/NSURLConnection
|
12
|
+
- AFNetworking/Reachability (4.0.1)
|
13
|
+
- AFNetworking/Security (4.0.1)
|
14
|
+
- AFNetworking/Serialization (4.0.1)
|
15
|
+
- AFNetworking/UIKit (4.0.1):
|
22
16
|
- AFNetworking/NSURLSession
|
23
17
|
|
24
18
|
DEPENDENCIES:
|
25
|
-
- AFNetworking (~>
|
19
|
+
- AFNetworking (~> 4.0.0)
|
20
|
+
|
21
|
+
SPEC REPOS:
|
22
|
+
trunk:
|
23
|
+
- AFNetworking
|
26
24
|
|
27
25
|
SPEC CHECKSUMS:
|
28
|
-
AFNetworking:
|
26
|
+
AFNetworking: 7864c38297c79aaca1500c33288e429c3451fdce
|
27
|
+
|
28
|
+
PODFILE CHECKSUM: 22ee56e144b87d6a6d6c7d940a77dd21f0574b3c
|
29
29
|
|
30
|
-
COCOAPODS:
|
30
|
+
COCOAPODS: 1.8.0
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: afmotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '
|
4
|
+
version: '3.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:
|
11
|
+
date: 2021-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: motion-cocoapods
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.9.1
|
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.9.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: motion-require
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: webstub
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.1.6
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.1.6
|
69
69
|
description: A RubyMotion Wrapper for AFNetworking
|
70
70
|
email:
|
71
71
|
- clay.allsopp@gmail.com
|
@@ -73,31 +73,36 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
77
|
-
- .travis.yml
|
76
|
+
- ".gitignore"
|
77
|
+
- ".travis.yml"
|
78
78
|
- AFMotion.gemspec
|
79
79
|
- Gemfile
|
80
|
-
- Gemfile.lock
|
81
80
|
- LICENSE
|
82
81
|
- README.md
|
83
82
|
- Rakefile
|
84
83
|
- app/app_delegate.rb
|
85
84
|
- lib/afmotion.rb
|
86
85
|
- lib/afmotion/client_shared.rb
|
86
|
+
- lib/afmotion/ext/AFHTTPSessionManager.rb
|
87
|
+
- lib/afmotion/ext/NSString_NSUrl.rb
|
88
|
+
- lib/afmotion/ext/UIImageView_url.rb
|
87
89
|
- lib/afmotion/http.rb
|
88
|
-
- lib/afmotion/http_client.rb
|
89
90
|
- lib/afmotion/http_result.rb
|
90
91
|
- lib/afmotion/operation.rb
|
91
|
-
- lib/afmotion/patch/NSString_NSUrl.rb
|
92
|
-
- lib/afmotion/patch/UIImageView_url.rb
|
93
92
|
- lib/afmotion/serializer.rb
|
94
93
|
- lib/afmotion/session_client.rb
|
94
|
+
- lib/afmotion/session_client_dsl.rb
|
95
95
|
- lib/afmotion/version.rb
|
96
|
+
- motionuser12_avatar.png
|
97
|
+
- motionuser12_avatar@2x.png
|
98
|
+
- railsuser3_avatar.png
|
99
|
+
- railsuser3_avatar@2x.png
|
96
100
|
- resources/test.png
|
97
|
-
- spec/http_client_spec.rb
|
98
101
|
- spec/http_spec.rb
|
99
102
|
- spec/integration_spec.rb
|
100
103
|
- spec/session_client_spec.rb
|
104
|
+
- swiftlytalking4_avatar.png
|
105
|
+
- swiftlytalking4_avatar@2x.png
|
101
106
|
- vendor/Podfile.lock
|
102
107
|
homepage: https://github.com/clayallsopp/AFMotion
|
103
108
|
licenses:
|
@@ -109,22 +114,20 @@ require_paths:
|
|
109
114
|
- lib
|
110
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
111
116
|
requirements:
|
112
|
-
- -
|
117
|
+
- - ">="
|
113
118
|
- !ruby/object:Gem::Version
|
114
119
|
version: '0'
|
115
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
121
|
requirements:
|
117
|
-
- -
|
122
|
+
- - ">="
|
118
123
|
- !ruby/object:Gem::Version
|
119
124
|
version: '0'
|
120
125
|
requirements: []
|
121
|
-
|
122
|
-
rubygems_version: 2.2.2
|
126
|
+
rubygems_version: 3.1.2
|
123
127
|
signing_key:
|
124
128
|
specification_version: 4
|
125
129
|
summary: A RubyMotion Wrapper for AFNetworking
|
126
130
|
test_files:
|
127
|
-
- spec/http_client_spec.rb
|
128
131
|
- spec/http_spec.rb
|
129
132
|
- spec/integration_spec.rb
|
130
133
|
- spec/session_client_spec.rb
|