afmotion 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +16 -0
- data/AFMotion.gemspec +19 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +53 -0
- data/README.md +135 -0
- data/Rakefile +14 -0
- data/app/app_delegate.rb +6 -0
- data/examples/AppDotNet/.gitignore +13 -0
- data/examples/AppDotNet/Gemfile +4 -0
- data/examples/AppDotNet/Gemfile.lock +48 -0
- data/examples/AppDotNet/Rakefile +10 -0
- data/examples/AppDotNet/app/app_delegate.rb +28 -0
- data/examples/AppDotNet/app/global_timeline_view_controller.rb +84 -0
- data/examples/AppDotNet/app/post.rb +23 -0
- data/examples/AppDotNet/app/post_table_view_cell.rb +44 -0
- data/examples/AppDotNet/app/user.rb +9 -0
- data/examples/AppDotNet/resources/profile-image-placeholder.png +0 -0
- data/examples/AppDotNet/resources/profile-image-placeholder@2x.png +0 -0
- data/examples/AppDotNet/spec/main_spec.rb +9 -0
- data/examples/AppDotNet/vendor/Podfile.lock +11 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +574 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +1187 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +341 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +108 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +237 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +136 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +131 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +44 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +145 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +652 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +169 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +180 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/AFNetworking.podspec +28 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/LICENSE +19 -0
- data/examples/AppDotNet/vendor/Pods/AFNetworking/README.md +179 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +574 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +108 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +44 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/examples/AppDotNet/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +574 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +108 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFNetworking.h +44 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/examples/AppDotNet/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/examples/AppDotNet/vendor/Pods/Pods-Acknowledgements.markdown +26 -0
- data/examples/AppDotNet/vendor/Pods/Pods-Acknowledgements.plist +56 -0
- data/examples/AppDotNet/vendor/Pods/Pods-prefix.pch +12 -0
- data/examples/AppDotNet/vendor/Pods/Pods-resources.sh +19 -0
- data/examples/AppDotNet/vendor/Pods/Pods.bridgesupport +617 -0
- data/examples/AppDotNet/vendor/Pods/Pods.xcconfig +7 -0
- data/examples/AppDotNet/vendor/Pods/Pods.xcodeproj/project.pbxproj +998 -0
- data/examples/AppDotNet/vendor/Pods/PodsDummy_Pods.m +4 -0
- data/lib/afmotion/http.rb +55 -0
- data/lib/afmotion/http_client.rb +121 -0
- data/lib/afmotion/http_result.rb +25 -0
- data/lib/afmotion/image.rb +10 -0
- data/lib/afmotion/operation.rb +65 -0
- data/lib/afmotion/patch/NSString_NSUrl.rb +11 -0
- data/lib/afmotion/version.rb +5 -0
- data/lib/afmotion.rb +16 -0
- data/pkg/afmotion-0.0.1.gem +0 -0
- data/spec/http_client_spec.rb +104 -0
- data/spec/http_spec.rb +26 -0
- data/spec/operation_spec.rb +41 -0
- data/vendor/Podfile.lock +11 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +574 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +1187 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +341 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +108 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +237 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +136 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +131 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +44 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +145 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +652 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +169 -0
- data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +180 -0
- data/vendor/Pods/AFNetworking/AFNetworking.podspec +28 -0
- data/vendor/Pods/AFNetworking/LICENSE +19 -0
- data/vendor/Pods/AFNetworking/README.md +179 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +574 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +108 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +44 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +574 -0
- data/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +108 -0
- data/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/Headers/AFNetworking/AFNetworking.h +44 -0
- data/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +295 -0
- data/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/Pods-Acknowledgements.markdown +26 -0
- data/vendor/Pods/Pods-Acknowledgements.plist +56 -0
- data/vendor/Pods/Pods-prefix.pch +12 -0
- data/vendor/Pods/Pods-resources.sh +19 -0
- data/vendor/Pods/Pods.bridgesupport +617 -0
- data/vendor/Pods/Pods.xcconfig +7 -0
- data/vendor/Pods/PodsDummy_Pods.m +4 -0
- metadata +218 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
module AFMotion
|
2
|
+
module HTTPBuilder
|
3
|
+
def self.included(base)
|
4
|
+
AFMotion::HTTP_METHODS.each do |method|
|
5
|
+
base.send(:define_singleton_method, method, -> (url, parameters = {}, &callback) do
|
6
|
+
request = NSMutableURLRequest.requestWithURL(url.to_url)
|
7
|
+
request.HTTPMethod = method.upcase
|
8
|
+
|
9
|
+
operation = (self.request_module.for_request(request) do |result|
|
10
|
+
callback.call(result)
|
11
|
+
end)
|
12
|
+
|
13
|
+
operation.start
|
14
|
+
operation
|
15
|
+
end)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module HTTP
|
21
|
+
include AFMotion::HTTPBuilder
|
22
|
+
|
23
|
+
module_function
|
24
|
+
def request_module
|
25
|
+
AFMotion::Operation::HTTP
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module JSON
|
30
|
+
include AFMotion::HTTPBuilder
|
31
|
+
|
32
|
+
module_function
|
33
|
+
def request_module
|
34
|
+
AFMotion::Operation::JSON
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
module XML
|
39
|
+
include AFMotion::HTTPBuilder
|
40
|
+
|
41
|
+
module_function
|
42
|
+
def request_module
|
43
|
+
AFMotion::Operation::XML
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
module PLIST
|
48
|
+
include AFMotion::HTTPBuilder
|
49
|
+
|
50
|
+
module_function
|
51
|
+
def request_module
|
52
|
+
AFMotion::Operation::PLIST
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
module AFMotion
|
2
|
+
class ClientDSL
|
3
|
+
def initialize(client)
|
4
|
+
@client = client
|
5
|
+
end
|
6
|
+
|
7
|
+
def header(header, value)
|
8
|
+
@client.setDefaultHeader(header, value: value)
|
9
|
+
end
|
10
|
+
|
11
|
+
def authorization(options = {})
|
12
|
+
@client.authorization = options
|
13
|
+
end
|
14
|
+
|
15
|
+
def operation(operation)
|
16
|
+
klass = operation
|
17
|
+
if operation.is_a?(Symbol) or operation.is_a?(String)
|
18
|
+
klass = case operation.to_s
|
19
|
+
when "json"
|
20
|
+
AFJSONRequestOperation
|
21
|
+
when "plist"
|
22
|
+
AFPropertyListRequestOperation
|
23
|
+
when "xml"
|
24
|
+
AFXMLRequestOperation
|
25
|
+
when "http"
|
26
|
+
AFHTTPRequestOperation
|
27
|
+
else
|
28
|
+
raise "Not a valid operation: #{operation.inspect}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
@client.registerHTTPOperationClass(klass)
|
33
|
+
end
|
34
|
+
|
35
|
+
def parameter_encoding(encoding)
|
36
|
+
enc = encoding
|
37
|
+
if encoding.is_a?(Symbol) or encoding.is_a?(String)
|
38
|
+
enc = case encoding.to_s
|
39
|
+
when "json"
|
40
|
+
AFJSONParameterEncoding
|
41
|
+
when "plist"
|
42
|
+
AFPropertyListParameterEncoding
|
43
|
+
when "form"
|
44
|
+
AFFormURLParameterEncoding
|
45
|
+
else
|
46
|
+
p "Not a valid parameter encoding: #{encoding.inspect}; using AFFormURLParameterEncoding"
|
47
|
+
AFFormURLParameterEncoding
|
48
|
+
end
|
49
|
+
end
|
50
|
+
@client.parameterEncoding = enc
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
module AFMotion
|
56
|
+
class Client
|
57
|
+
class << self
|
58
|
+
attr_accessor :shared
|
59
|
+
|
60
|
+
# Returns an instance of AFHTTPClient
|
61
|
+
def build(base_url, &block)
|
62
|
+
client = AFHTTPClient.clientWithBaseURL(base_url.to_url)
|
63
|
+
if block
|
64
|
+
dsl = AFMotion::ClientDSL.new(client)
|
65
|
+
dsl.instance_eval(&block)
|
66
|
+
end
|
67
|
+
client
|
68
|
+
end
|
69
|
+
|
70
|
+
# Sets AFMotion::Client.shared as the built client
|
71
|
+
# TODO: Make sure this only happens once (dispatch_once not available)
|
72
|
+
def build_shared(base_url, &block)
|
73
|
+
self.shared = self.build(base_url, &block)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
class AFHTTPClient
|
80
|
+
AFMotion::HTTP_METHODS.each do |method|
|
81
|
+
# EX client.get('my/resource.json')
|
82
|
+
define_method "#{method}", -> (path, parameters = {}, &callback) do
|
83
|
+
fn = "#{method}Path:parameters:success:failure:"
|
84
|
+
self.send(fn, path, parameters,
|
85
|
+
lambda {|operation, responseObject|
|
86
|
+
result = AFMotion::HTTPResult.new(operation, responseObject, nil)
|
87
|
+
callback.call(result)
|
88
|
+
}, lambda {|operation, error|
|
89
|
+
result = AFMotion::HTTPResult.new(operation, nil, error)
|
90
|
+
callback.call(result)
|
91
|
+
})
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
# options can be
|
97
|
+
# - {username: ___, password: ____}
|
98
|
+
# or
|
99
|
+
# - {token: ___ }
|
100
|
+
def authorization=(options = {})
|
101
|
+
if options.nil?
|
102
|
+
clearAuthorizationHeader
|
103
|
+
elsif options[:username] && options[:password]
|
104
|
+
setAuthorizationHeaderWithUsername(options[:username], password: options[:password])
|
105
|
+
elsif options[:token]
|
106
|
+
setAuthorizationHeaderWithToken(options[:token])
|
107
|
+
else
|
108
|
+
raise "Not a valid authorization hash: #{options.inspect}"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
private
|
113
|
+
# To force RubyMotion pre-compilation of these methods
|
114
|
+
def dummy
|
115
|
+
self.getPath("", parameters: nil, success: nil, failure: nil)
|
116
|
+
self.postPath("", parameters: nil, success: nil, failure: nil)
|
117
|
+
self.putPath("", parameters: nil, success: nil, failure: nil)
|
118
|
+
self.deletePath("", parameters: nil, success: nil, failure: nil)
|
119
|
+
self.patchPath("", parameters: nil, success: nil, failure: nil)
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module AFMotion
|
2
|
+
class HTTPResult
|
3
|
+
attr_accessor :operation, :object, :error
|
4
|
+
|
5
|
+
def initialize(operation, responseObject, error)
|
6
|
+
self.operation = operation
|
7
|
+
self.object = responseObject
|
8
|
+
self.error = error
|
9
|
+
end
|
10
|
+
|
11
|
+
def success?
|
12
|
+
!failure?
|
13
|
+
end
|
14
|
+
|
15
|
+
def failure?
|
16
|
+
!!error
|
17
|
+
end
|
18
|
+
|
19
|
+
def body
|
20
|
+
if operation && operation.responseData
|
21
|
+
NSString.stringWithUTF8String(operation.responseData.bytes)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module AFMotion
|
2
|
+
module Operation
|
3
|
+
module HTTP
|
4
|
+
def self.for_request(request, &callback)
|
5
|
+
operation = AFHTTPRequestOperation.alloc.initWithRequest(request)
|
6
|
+
operation.setCompletionBlockWithSuccess(
|
7
|
+
lambda { |operation, responseObject|
|
8
|
+
result = AFMotion::HTTPResult.new(operation, responseObject, nil)
|
9
|
+
callback.call(result)
|
10
|
+
},
|
11
|
+
failure: lambda {|operation, error|
|
12
|
+
result = AFMotion::HTTPResult.new(operation, nil, error)
|
13
|
+
callback.call(result)
|
14
|
+
}
|
15
|
+
)
|
16
|
+
operation
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module JSON
|
21
|
+
def self.for_request(request, &callback)
|
22
|
+
operation = AFJSONRequestOperation.JSONRequestOperationWithRequest(request,
|
23
|
+
success: lambda { |request, response, json|
|
24
|
+
result = AFMotion::HTTPResult.new(operation, json, nil)
|
25
|
+
callback.call(result)
|
26
|
+
},
|
27
|
+
failure: lambda { |request, response, error, json|
|
28
|
+
result = AFMotion::HTTPResult.new(operation, json, error)
|
29
|
+
callback.call(result)
|
30
|
+
}
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module XML
|
36
|
+
def self.for_request(request, &callback)
|
37
|
+
operation = AFXMLRequestOperation.XMLParserRequestOperationWithRequest(request,
|
38
|
+
success: lambda { |request, response, document_or_parser|
|
39
|
+
result = AFMotion::HTTPResult.new(operation, document_or_parser, nil)
|
40
|
+
callback.call(result)
|
41
|
+
},
|
42
|
+
failure: lambda { |request, response, error, document_or_parser|
|
43
|
+
result = AFMotion::HTTPResult.new(operation, document_or_parser, error)
|
44
|
+
callback.call(result)
|
45
|
+
}
|
46
|
+
)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
module PLIST
|
51
|
+
def self.for_request(request, &callback)
|
52
|
+
operation = AFPropertyListRequestOperation.propertyListRequestOperationWithRequest(request,
|
53
|
+
success: lambda { |request, response, propertyList|
|
54
|
+
result = AFMotion::HTTPResult.new(operation, propertyList, nil)
|
55
|
+
callback.call(result)
|
56
|
+
},
|
57
|
+
failure: lambda { |request, response, error, propertyList|
|
58
|
+
result = AFMotion::HTTPResult.new(operation, propertyList, error)
|
59
|
+
callback.call(result)
|
60
|
+
}
|
61
|
+
)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/afmotion.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "afmotion/version"
|
2
|
+
require 'motion-cocoapods'
|
3
|
+
|
4
|
+
unless defined?(Motion::Project::Config)
|
5
|
+
raise "This file must be required within a RubyMotion project Rakefile."
|
6
|
+
end
|
7
|
+
|
8
|
+
Motion::Project::App.setup do |app|
|
9
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'afmotion/**/*.rb')).each do |file|
|
10
|
+
app.files.unshift(file)
|
11
|
+
end
|
12
|
+
|
13
|
+
app.pods do
|
14
|
+
pod 'AFNetworking'
|
15
|
+
end
|
16
|
+
end
|
Binary file
|
@@ -0,0 +1,104 @@
|
|
1
|
+
describe "AFMotion::ClientDSL" do
|
2
|
+
before do
|
3
|
+
@client = AFHTTPClient.clientWithBaseURL("http://url".to_url)
|
4
|
+
@dsl = AFMotion::ClientDSL.new(@client)
|
5
|
+
end
|
6
|
+
|
7
|
+
describe "#header" do
|
8
|
+
it "should set header" do
|
9
|
+
@dsl.header "Accept", "application/json"
|
10
|
+
@client.defaultValueForHeader("Accept").should == "application/json"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#authorization" do
|
15
|
+
it "should set authorization" do
|
16
|
+
@dsl.authorization username: "clay", password: "test"
|
17
|
+
@client.defaultValueForHeader("Authorization").nil?.should == false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#operation" do
|
22
|
+
it "should set operation if provided type" do
|
23
|
+
@dsl.operation AFJSONRequestOperation
|
24
|
+
@client.registeredHTTPOperationClassNames.member?("AFJSONRequestOperation").should == true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should set operation if provided string" do
|
28
|
+
[["json", "AFJSONRequestOperation"], ["xml", "AFXMLRequestOperation"], ["plist", "AFPropertyListRequestOperation"]].each do |op, op_class|
|
29
|
+
@dsl.operation op
|
30
|
+
@client.registeredHTTPOperationClassNames.member?(op_class).should == true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "#parameter_encoding" do
|
36
|
+
it "should set encoding if provided type" do
|
37
|
+
@dsl.parameter_encoding AFJSONParameterEncoding
|
38
|
+
@client.parameterEncoding.should == AFJSONParameterEncoding
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should set encoding if provided string" do
|
42
|
+
[["json", AFJSONParameterEncoding], ["form", AFFormURLParameterEncoding], ["plist", AFPropertyListParameterEncoding]].each do |enc, enc_class|
|
43
|
+
@dsl.parameter_encoding enc
|
44
|
+
@client.parameterEncoding.should == enc_class
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "AFMotion::Client" do
|
51
|
+
describe ".build" do
|
52
|
+
it "should return an AFHTTPClient" do
|
53
|
+
client = AFMotion::Client.build("http://url")
|
54
|
+
client.is_a?(AFHTTPClient).should == true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe ".build_shared" do
|
59
|
+
it "should set AFMotion::Client.shared" do
|
60
|
+
client = AFMotion::Client.build_shared("http://url")
|
61
|
+
AFMotion::Client.shared.should == client
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "AFHTTPClient" do
|
67
|
+
before do
|
68
|
+
@client = AFHTTPClient.clientWithBaseURL("http://google.com/".to_url)
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "URL Helpers" do
|
72
|
+
it "should exist" do
|
73
|
+
AFMotion::HTTP_METHODS.each do |method|
|
74
|
+
@client.respond_to?(method).should == true
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Pretty basic test
|
80
|
+
it "should work" do
|
81
|
+
@result = nil
|
82
|
+
@client.get("") do |result|
|
83
|
+
@result = result
|
84
|
+
resume
|
85
|
+
end
|
86
|
+
wait_max(10) do
|
87
|
+
@result.nil?.should == false
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#authorization=" do
|
92
|
+
it "should set basic auth" do
|
93
|
+
@client.authorization = {username: "clay", password: "pass"}
|
94
|
+
@client.defaultValueForHeader("Authorization").split[0].should == "Basic"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "#build_shared" do
|
99
|
+
it "should set AFMotion::Client.shared" do
|
100
|
+
@client.authorization = {token: "clay"}
|
101
|
+
@client.defaultValueForHeader("Authorization").split[0].should == "Token"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/spec/http_spec.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
describe "AFMotion" do
|
2
|
+
|
3
|
+
modules = [AFMotion::HTTP, AFMotion::JSON, AFMotion::XML, AFMotion::PLIST]
|
4
|
+
|
5
|
+
modules.each do |_module|
|
6
|
+
describe _module.to_s do
|
7
|
+
it "should have all the HTTP methods" do
|
8
|
+
AFMotion::HTTP_METHODS.each do |method|
|
9
|
+
_module.respond_to?(method).should == true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".get" do
|
14
|
+
it "should work" do
|
15
|
+
_module.get("http://google.com") do |result|
|
16
|
+
@result = result
|
17
|
+
resume
|
18
|
+
end
|
19
|
+
wait_max(10) do
|
20
|
+
@result.nil?.should == false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
describe "AFMotion::Operation" do
|
2
|
+
before do
|
3
|
+
@request = NSURLRequest.requestWithURL(NSURL.URLWithString("http://google.com"))
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "::HTTP" do
|
7
|
+
describe ".for_request" do
|
8
|
+
it "should be a AFHTTPRequestOperation" do
|
9
|
+
operation = AFMotion::Operation::HTTP.for_request(@request)
|
10
|
+
operation.is_a?(AFHTTPRequestOperation).should == true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "::JSON" do
|
16
|
+
describe ".for_request" do
|
17
|
+
it "should be a AFJSONRequestOperation" do
|
18
|
+
operation = AFMotion::Operation::JSON.for_request(@request)
|
19
|
+
operation.is_a?(AFJSONRequestOperation).should == true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "::XML" do
|
25
|
+
describe ".for_request" do
|
26
|
+
it "should be a AFXMLRequestOperation" do
|
27
|
+
operation = AFMotion::Operation::XML.for_request(@request)
|
28
|
+
operation.is_a?(AFXMLRequestOperation).should == true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "::PLIST" do
|
34
|
+
describe ".for_request" do
|
35
|
+
it "should be a AFPropertyListRequestOperation" do
|
36
|
+
operation = AFMotion::Operation::PLIST.for_request(@request)
|
37
|
+
operation.is_a?(AFPropertyListRequestOperation).should == true
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|