class AFMotion::SessionClientDSL
Constants
- OPERATION_TO_REQUEST_SERIALIZER
- OPERATION_TO_RESPONSE_SERIALIZER
- SESSION_CONFIGURATION_SHORTHAND
Attributes
config[RW]
Public Class Methods
new(base_url)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 28 def initialize(base_url) @base_url = base_url @config = Config.new end
Public Instance Methods
header(header, value)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 76 def header(header, value) @headers ||= {} @headers[header] = value apply_header(header, value) end
request_serializer(serializer)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 91 def request_serializer(serializer) if serializer.is_a?(Symbol) || serializer.is_a?(String) config.requestSerializer = OPERATION_TO_REQUEST_SERIALIZER[serializer.to_sym].serializer elsif serializer.is_a?(Class) config.requestSerializer = serializer.serializer else config.requestSerializer = serializer end reapply_options end
response_serializer(serializer)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 110 def response_serializer(serializer) write_json_options = true if serializer.is_a?(Symbol) || serializer.is_a?(String) config.responseSerializer = OPERATION_TO_RESPONSE_SERIALIZER[serializer.to_sym].serializer elsif serializer.is_a?(Class) config.responseSerializer = serializer.serializer else config.responseSerializer = serializer write_json_options = false end af_serializer = config.responseSerializer if af_serializer.is_a?(AFJSONResponseSerializer) && write_json_options af_serializer.readingOptions = NSJSONReadingMutableContainers end af_serializer end
session_configuration(session_configuration, identifier = nil)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 56 def session_configuration(session_configuration, identifier = nil) if session_configuration.is_a?(Symbol) || session_configuration.is_a?(String) method_signature = SESSION_CONFIGURATION_SHORTHAND[session_configuration.to_sym] ns_url_session_configuration = begin if identifier NSURLSessionConfiguration.send(method_signature, identifier) else NSURLSessionConfiguration.send(method_signature) end end self.config.sessionConfiguration = ns_url_session_configuration elsif session_configuration.is_a?(NSURLSessionConfiguration) || # cluster class smh session_configuration.class.to_s.include?("URLSessionConfiguration") self.config.sessionConfiguration = session_configuration else raise "Invalid type for session_configuration; need Symbol, String, or NSURLSessionConfiguration, but got #{session_configuration.class}" end end
to_session_manager()
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 33 def to_session_manager session_manager = AFHTTPSessionManager.alloc.initWithBaseURL(@base_url.to_url, sessionConfiguration: config.sessionConfiguration) session_manager.responseSerializer = config.responseSerializer if config.responseSerializer if !config.requestSerializer.is_a?(Config::MockRequestSerializer) session_manager.requestSerializer = config.requestSerializer elsif config.requestSerializer.authorization session_manager.requestSerializer.authorization = config.requestSerializer.authorization end config.headers.each do |key, value| session_manager.requestSerializer.headers[key] = value end session_manager end
Private Instance Methods
apply_header(header, value)
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 134 def apply_header(header, value) config.headers[header] = value end
reapply_options()
click to toggle source
# File lib/afmotion/session_client_dsl.rb, line 129 def reapply_options @headers.each{ |h,v| apply_header(h, v) } unless @headers.nil? apply_authorization(@authorization) unless @authorization.nil? end