Class: Savon::GlobalOptions

Inherits:
Options
  • Object
show all
Includes:
SharedOptions
Defined in:
lib/savon/options.rb

Instance Attribute Summary

Attributes inherited from Options

#option_type

Instance Method Summary collapse

Methods included from SharedOptions

#wsse_auth, #wsse_signature, #wsse_timestamp

Methods inherited from Options

#[], #[]=, #include?

Constructor Details

#initialize(options = {}) ⇒ GlobalOptions

Returns a new instance of GlobalOptions.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/savon/options.rb', line 72

def initialize(options = {})
  @option_type = :global

  defaults = {
    :encoding                    => "UTF-8",
    :soap_version                => 1,
    :namespaces                  => {},
    :logger                      => Logger.new($stdout),
    :log                         => false,
    :filters                     => [],
    :pretty_print_xml            => false,
    :raise_errors                => true,
    :strip_namespaces            => true,
    :delete_namespace_attributes => false,
    :convert_response_tags_to    => lambda { |tag| tag.snakecase.to_sym},
    :convert_attributes_to       => lambda { |k,v| [k,v] },
    :multipart                   => false,
    :adapter                     => nil,
    :use_wsa_headers             => false,
    :no_message_tag              => false,
    :follow_redirects            => false,
    :unwrap                      => false,
    :host                        => nil
  }

  options = defaults.merge(options)

  # this option is a shortcut on the logger which needs to be set
  # before it can be modified to set the option.
  delayed_level = options.delete(:log_level)

  super(options)

  log_level(delayed_level) unless delayed_level.nil?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Savon::Options

Instance Method Details

#adapter(adapter) ⇒ Object

Instruct Savon what HTTPI adapter it should use instead of default



342
343
344
# File 'lib/savon/options.rb', line 342

def adapter(adapter)
  @options[:adapter] = adapter
end

#basic_auth(*credentials) ⇒ Object

HTTP basic auth credentials.



286
287
288
# File 'lib/savon/options.rb', line 286

def basic_auth(*credentials)
  @options[:basic_auth] = credentials.flatten
end

#convert_attributes_to(converter = nil, &block) ⇒ Object

Tell Nori how to convert XML attributes on tags from the SOAP response into Hash keys. Accepts a lambda or a block which receives an XML tag and returns a Hash key. Defaults to doing nothing



332
333
334
# File 'lib/savon/options.rb', line 332

def convert_attributes_to(converter = nil, &block)
  @options[:convert_attributes_to] = block || converter
end

#convert_request_keys_to(converter) ⇒ Object

Tell Gyoku how to convert Hash key Symbols to XML tags. Accepts one of :lower_camelcase, :camelcase, :upcase, or :none.



312
313
314
# File 'lib/savon/options.rb', line 312

def convert_request_keys_to(converter)
  @options[:convert_request_keys_to] = converter
end

#convert_response_tags_to(converter = nil, &block) ⇒ Object

Tell Nori how to convert XML tags from the SOAP response into Hash keys. Accepts a lambda or a block which receives an XML tag and returns a Hash key. Defaults to convert tags to snakecase Symbols.



325
326
327
# File 'lib/savon/options.rb', line 325

def convert_response_tags_to(converter = nil, &block)
  @options[:convert_response_tags_to] = block || converter
end

#delete_namespace_attributes(delete_namespace_attributes) ⇒ Object

Instruct Nori whether to delete namespace attributes from XML nodes.



306
307
308
# File 'lib/savon/options.rb', line 306

def delete_namespace_attributes(delete_namespace_attributes)
  @options[:delete_namespace_attributes] = delete_namespace_attributes
end

#digest_auth(*credentials) ⇒ Object

HTTP digest auth credentials.



291
292
293
# File 'lib/savon/options.rb', line 291

def digest_auth(*credentials)
  @options[:digest_auth] = credentials.flatten
end

#element_form_default(element_form_default) ⇒ Object

Sets whether elements should be :qualified or :unqualified. If you need to use this option, please open an issue and make sure to add your WSDL document for debugging.



171
172
173
# File 'lib/savon/options.rb', line 171

def element_form_default(element_form_default)
  @options[:element_form_default] = element_form_default
end

#encoding(encoding) ⇒ Object

The encoding to use. Defaults to "UTF-8".



159
160
161
# File 'lib/savon/options.rb', line 159

def encoding(encoding)
  @options[:encoding] = encoding
end

#endpoint(endpoint) ⇒ Object

SOAP endpoint.



119
120
121
# File 'lib/savon/options.rb', line 119

def endpoint(endpoint)
  @options[:endpoint] = endpoint
end

#env_namespace(env_namespace) ⇒ Object

Can be used to change the SOAP envelope namespace identifier. If you need to use this option, please open an issue and make sure to add your WSDL document for debugging.



178
179
180
# File 'lib/savon/options.rb', line 178

def env_namespace(env_namespace)
  @options[:env_namespace] = env_namespace
end

#filters(*filters) ⇒ Object

A list of XML tags to filter from logged SOAP messages.



217
218
219
# File 'lib/savon/options.rb', line 217

def filters(*filters)
  @options[:filters] = filters.flatten
end

#follow_redirects(follow_redirects) ⇒ Object

Instruct requests to follow HTTP redirects.



356
357
358
# File 'lib/savon/options.rb', line 356

def follow_redirects(follow_redirects)
  @options[:follow_redirects] = follow_redirects
end

#headers(headers) ⇒ Object

A Hash of HTTP headers.



144
145
146
# File 'lib/savon/options.rb', line 144

def headers(headers)
  @options[:headers] = headers
end

#host(host) ⇒ Object

set different host for actions in WSDL



114
115
116
# File 'lib/savon/options.rb', line 114

def host(host)
  @options[:host] = host
end

#log(log) ⇒ Object

Whether or not to log.



193
194
195
196
# File 'lib/savon/options.rb', line 193

def log(log)
  HTTPI.log = log
  @options[:log] = log
end

#log_level(level) ⇒ Object

Changes the Logger's log level.



205
206
207
208
209
210
211
212
213
214
# File 'lib/savon/options.rb', line 205

def log_level(level)
  levels = { :debug => 0, :info => 1, :warn => 2, :error => 3, :fatal => 4 }

  unless levels.include? level
    raise ArgumentError, "Invalid log level: #{level.inspect}\n" \
                         "Expected one of: #{levels.keys.inspect}"
  end

  @options[:logger].level = levels[level]
end

#logger(logger) ⇒ Object

The logger to use. Defaults to a Savon::Logger instance.



199
200
201
202
# File 'lib/savon/options.rb', line 199

def logger(logger)
  HTTPI.logger = logger
  @options[:logger] = logger
end

#multipart(multipart) ⇒ Object

Instruct Savon to create a multipart response if available.



337
338
339
# File 'lib/savon/options.rb', line 337

def multipart(multipart)
  @options[:multipart] = multipart
end

#namespace(namespace) ⇒ Object

Target namespace.



124
125
126
# File 'lib/savon/options.rb', line 124

def namespace(namespace)
  @options[:namespace] = namespace
end

#namespace_identifier(identifier) ⇒ Object

The namespace identifer.



129
130
131
# File 'lib/savon/options.rb', line 129

def namespace_identifier(identifier)
  @options[:namespace_identifier] = identifier
end

#namespaces(namespaces) ⇒ Object

Namespaces for the SOAP envelope.



134
135
136
# File 'lib/savon/options.rb', line 134

def namespaces(namespaces)
  @options[:namespaces] = namespaces
end

#no_message_tag(bool) ⇒ Object



351
352
353
# File 'lib/savon/options.rb', line 351

def no_message_tag(bool)
  @options[:no_message_tag] = bool
end

#ntlm(*credentials) ⇒ Object

NTLM auth credentials.



296
297
298
# File 'lib/savon/options.rb', line 296

def ntlm(*credentials)
  @options[:ntlm] = credentials.flatten
end

#open_timeout(open_timeout) ⇒ Object

Open timeout in seconds.



149
150
151
# File 'lib/savon/options.rb', line 149

def open_timeout(open_timeout)
  @options[:open_timeout] = open_timeout
end

#pretty_print_xml(pretty_print_xml) ⇒ Object

Whether to pretty print request and response XML log messages.



222
223
224
# File 'lib/savon/options.rb', line 222

def pretty_print_xml(pretty_print_xml)
  @options[:pretty_print_xml] = pretty_print_xml
end

#proxy(proxy) ⇒ Object

Proxy server to use for all requests.



139
140
141
# File 'lib/savon/options.rb', line 139

def proxy(proxy)
  @options[:proxy] = proxy unless proxy.nil?
end

#raise_errors(raise_errors) ⇒ Object

Whether or not to raise SOAP fault and HTTP errors.



188
189
190
# File 'lib/savon/options.rb', line 188

def raise_errors(raise_errors)
  @options[:raise_errors] = raise_errors
end

#read_timeout(read_timeout) ⇒ Object

Read timeout in seconds.



154
155
156
# File 'lib/savon/options.rb', line 154

def read_timeout(read_timeout)
  @options[:read_timeout] = read_timeout
end

#soap_header(header) ⇒ Object

The global SOAP header. Expected to be a Hash or responding to #to_s.



164
165
166
# File 'lib/savon/options.rb', line 164

def soap_header(header)
  @options[:soap_header] = header
end

#soap_version(soap_version) ⇒ Object

Changes the SOAP version to 1 or 2.



183
184
185
# File 'lib/savon/options.rb', line 183

def soap_version(soap_version)
  @options[:soap_version] = soap_version
end

#ssl_ca_cert(cert) ⇒ Object

Sets the ca cert to use.



267
268
269
# File 'lib/savon/options.rb', line 267

def ssl_ca_cert(cert)
  @options[:ssl_ca_cert] = cert
end

#ssl_ca_cert_file(file) ⇒ Object

Sets the ca cert file to use.



262
263
264
# File 'lib/savon/options.rb', line 262

def ssl_ca_cert_file(file)
  @options[:ssl_ca_cert_file] = file
end

#ssl_ca_cert_path(path) ⇒ Object

Sets the ca cert path.



276
277
278
# File 'lib/savon/options.rb', line 276

def ssl_ca_cert_path(path)
  @options[:ssl_ca_cert_path] = path
end

#ssl_cert(cert) ⇒ Object

Sets the cert to use.



257
258
259
# File 'lib/savon/options.rb', line 257

def ssl_cert(cert)
  @options[:ssl_cert] = cert
end

#ssl_cert_file(file) ⇒ Object

Sets the cert file to use.



252
253
254
# File 'lib/savon/options.rb', line 252

def ssl_cert_file(file)
  @options[:ssl_cert_file] = file
end

#ssl_cert_key(key) ⇒ Object

Sets the cert key to use.



242
243
244
# File 'lib/savon/options.rb', line 242

def ssl_cert_key(key)
  @options[:ssl_cert_key] = key
end

#ssl_cert_key_file(file) ⇒ Object

Sets the cert key file to use.



237
238
239
# File 'lib/savon/options.rb', line 237

def ssl_cert_key_file(file)
  @options[:ssl_cert_key_file] = file
end

#ssl_cert_key_password(password) ⇒ Object

Sets the cert key password to use.



247
248
249
# File 'lib/savon/options.rb', line 247

def ssl_cert_key_password(password)
  @options[:ssl_cert_key_password] = password
end

#ssl_cert_store(store) ⇒ Object

Sets the ssl cert store.



281
282
283
# File 'lib/savon/options.rb', line 281

def ssl_cert_store(store)
  @options[:ssl_cert_store] = store
end

#ssl_ciphers(ciphers) ⇒ Object



271
272
273
# File 'lib/savon/options.rb', line 271

def ssl_ciphers(ciphers)
  @options[:ssl_ciphers] = ciphers
end

#ssl_verify_mode(verify_mode) ⇒ Object

Whether and how to to verify the connection.



232
233
234
# File 'lib/savon/options.rb', line 232

def ssl_verify_mode(verify_mode)
  @options[:ssl_verify_mode] = verify_mode
end

#ssl_version(version) ⇒ Object

Specifies the SSL version to use.



227
228
229
# File 'lib/savon/options.rb', line 227

def ssl_version(version)
  @options[:ssl_version] = version
end

#strip_namespaces(strip_namespaces) ⇒ Object

Instruct Nori whether to strip namespaces from XML nodes.



301
302
303
# File 'lib/savon/options.rb', line 301

def strip_namespaces(strip_namespaces)
  @options[:strip_namespaces] = strip_namespaces
end

#unwrap(unwrap) ⇒ Object

Tell Gyoku to unwrap Array of Hashes Accepts a boolean, default to false



318
319
320
# File 'lib/savon/options.rb', line 318

def unwrap(unwrap)
  @options[:unwrap] = unwrap
end

#use_wsa_headers(use) ⇒ Object

Enable inclusion of WS-Addressing headers.



347
348
349
# File 'lib/savon/options.rb', line 347

def use_wsa_headers(use)
  @options[:use_wsa_headers] = use
end

#wsdl(wsdl_address) ⇒ Object

Location of the local or remote WSDL document.



109
110
111
# File 'lib/savon/options.rb', line 109

def wsdl(wsdl_address)
  @options[:wsdl] = wsdl_address
end