Module: AFMotion::Operation

Defined in:
lib/afmotion/operation.rb

Class Method Summary collapse

Class Method Details

.failure_block(callback) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/afmotion/operation.rb', line 24

def failure_block(callback)
  lambda { |operation_or_task, error|
    response_object = operation_or_task.is_a?(AFHTTPRequestOperation) ? operation_or_task.responseObject : nil
    result = AFMotion::HTTPResult.new(operation_or_task, response_object, error)
    callback.call(result)
  }
end

.for_request(ns_url_request, &callback) ⇒ Object



4
5
6
7
8
9
# File 'lib/afmotion/operation.rb', line 4

def for_request(ns_url_request, &callback)
  operation = AFHTTPRequestOperation.alloc.initWithRequest(ns_url_request)
  success_block = success_block_for_http_method(ns_url_request.HTTPMethod, callback)
  operation.setCompletionBlockWithSuccess(success_block, failure: failure_block(callback))
  operation
end

.success_block_for_http_method(http_method, callback) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/afmotion/operation.rb', line 11

def success_block_for_http_method(http_method, callback)
  if http_method.downcase.to_sym == :head
    return lambda { |operation_or_task|
      AFMotion::HTTPResult.new(operation_or_task, nil, nil)
    }
  end

  lambda { |operation_or_task, responseObject|
    result = AFMotion::HTTPResult.new(operation_or_task, responseObject, nil)
    callback.call(result)
  }
end