Class: AFMotion::SessionClientDSL
- Inherits:
-
Object
- Object
- AFMotion::SessionClientDSL
- Defined in:
- lib/afmotion/session_client_dsl.rb
Defined Under Namespace
Classes: Config
Constant Summary collapse
- SESSION_CONFIGURATION_SHORTHAND =
{ default: :defaultSessionConfiguration, ephemeral: :ephemeralSessionConfiguration, background: (Object.const_defined?("UIDevice") && UIDevice.currentDevice.systemVersion.to_f >= 8.0 ? "backgroundSessionConfigurationWithIdentifier:" : "backgroundSessionConfiguration:").to_sym }
- 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 Attribute Summary collapse
-
#config ⇒ Object
Returns the value of attribute config.
Instance Method Summary collapse
- #authorization(options = {}) ⇒ Object
- #header(header, value) ⇒ Object
-
#initialize(base_url) ⇒ SessionClientDSL
constructor
A new instance of SessionClientDSL.
- #request_serializer(serializer) ⇒ Object
- #response_serializer(serializer) ⇒ Object
- #session_configuration(session_configuration, identifier = nil) ⇒ Object
- #to_session_manager ⇒ Object
Constructor Details
#initialize(base_url) ⇒ SessionClientDSL
Returns a new instance of SessionClientDSL.
28 29 30 31 |
# File 'lib/afmotion/session_client_dsl.rb', line 28 def initialize(base_url) @base_url = base_url @config = Config.new end |
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
26 27 28 |
# File 'lib/afmotion/session_client_dsl.rb', line 26 def config @config end |
Instance Method Details
#authorization(options = {}) ⇒ Object
82 83 84 85 |
# File 'lib/afmotion/session_client_dsl.rb', line 82 def ( = {}) = () end |
#header(header, value) ⇒ Object
76 77 78 79 80 |
# 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) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# 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 end |
#response_serializer(serializer) ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/afmotion/session_client_dsl.rb', line 110 def response_serializer(serializer) = 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 = false end af_serializer = config.responseSerializer if af_serializer.is_a?(AFJSONResponseSerializer) && af_serializer.readingOptions = NSJSONReadingMutableContainers end af_serializer end |
#session_configuration(session_configuration, identifier = nil) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# 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 ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# 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. session_manager.requestSerializer. = config.requestSerializer. end config.headers.each do |key, value| session_manager.requestSerializer.headers[key] = value end session_manager end |