Class: AFMotion::ClientDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/afmotion/http_client.rb

Direct Known Subclasses

SessionClientDSL

Constant Summary collapse

OPERATION_TO_REQUEST_SERIALIZER =
{
  json: AFJSONRequestSerializer,
  plist: AFPropertyListRequestSerializer
}
OPERATION_TO_RESPONSE_SERIALIZER =
{
  json: AFJSONResponseSerializer,
  xml: AFXMLParserResponseSerializer,
  plist: AFPropertyListResponseSerializer,
  image: AFImageResponseSerializer,
  http: AFHTTPResponseSerializer,
  form: AFHTTPResponseSerializer
}

Instance Method Summary collapse

Constructor Details

#initialize(operation_manager) ⇒ ClientDSL

Returns a new instance of ClientDSL.



37
38
39
# File 'lib/afmotion/http_client.rb', line 37

def initialize(operation_manager)
  @operation_manager = WeakRef.new(operation_manager)
end

Instance Method Details

#authorization(options = {}) ⇒ Object



47
48
49
50
# File 'lib/afmotion/http_client.rb', line 47

def authorization(options = {})
  @authorization = options
  apply_authorization(options)
end

#header(header, value) ⇒ Object



41
42
43
44
45
# File 'lib/afmotion/http_client.rb', line 41

def header(header, value)
  @headers ||= {}
  @headers[header] = value
  apply_header(header, value)
end

#operation_queue(operation_queue) ⇒ Object



52
53
54
# File 'lib/afmotion/http_client.rb', line 52

def operation_queue(operation_queue)
  @operation_manager.operationQueue = operation_queue
end

#request_serializer(serializer) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# File 'lib/afmotion/http_client.rb', line 60

def request_serializer(serializer)
  if serializer.is_a?(Symbol) || serializer.is_a?(String)
    @operation_manager.requestSerializer = OPERATION_TO_REQUEST_SERIALIZER[serializer.to_sym].serializer
  elsif serializer.is_a?(Class)
    @operation_manager.requestSerializer = serializer.serializer
  else
    @operation_manager.requestSerializer = serializer
  end
  reapply_options
end

#response_serializer(serializer) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/afmotion/http_client.rb', line 79

def response_serializer(serializer)
  write_json_options = true
  if serializer.is_a?(Symbol) || serializer.is_a?(String)
    @operation_manager.responseSerializer = OPERATION_TO_RESPONSE_SERIALIZER[serializer.to_sym].serializer
  elsif serializer.is_a?(Class)
    @operation_manager.responseSerializer = serializer.serializer
  else
    @operation_manager.responseSerializer = serializer
    write_json_options = false
  end
  af_serializer = @operation_manager.responseSerializer
  if af_serializer.is_a?(AFJSONResponseSerializer) && write_json_options
    af_serializer.readingOptions = NSJSONReadingMutableContainers
  end
  af_serializer
end