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
# 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,
    :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
  }

  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



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

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

#basic_auth(*credentials) ⇒ Object

HTTP basic auth credentials.



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

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



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

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.



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

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.



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

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

#digest_auth(*credentials) ⇒ Object

HTTP digest auth credentials.



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

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.



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

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".



152
153
154
# File 'lib/savon/options.rb', line 152

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

#endpoint(endpoint) ⇒ Object

SOAP endpoint.



112
113
114
# File 'lib/savon/options.rb', line 112

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.



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

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.



210
211
212
# File 'lib/savon/options.rb', line 210

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

#follow_redirects(follow_redirects) ⇒ Object

Instruct requests to follow HTTP redirects.



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

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

#headers(headers) ⇒ Object

A Hash of HTTP headers.



137
138
139
# File 'lib/savon/options.rb', line 137

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

#log(log) ⇒ Object

Whether or not to log.



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

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

#log_level(level) ⇒ Object

Changes the Logger's log level.



198
199
200
201
202
203
204
205
206
207
# File 'lib/savon/options.rb', line 198

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.



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

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

#multipart(multipart) ⇒ Object

Instruct Savon to create a multipart response if available.



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

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

#namespace(namespace) ⇒ Object

Target namespace.



117
118
119
# File 'lib/savon/options.rb', line 117

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

#namespace_identifier(identifier) ⇒ Object

The namespace identifer.



122
123
124
# File 'lib/savon/options.rb', line 122

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

#namespaces(namespaces) ⇒ Object

Namespaces for the SOAP envelope.



127
128
129
# File 'lib/savon/options.rb', line 127

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

#no_message_tag(bool) ⇒ Object



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

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

#ntlm(*credentials) ⇒ Object

NTLM auth credentials.



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

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

#open_timeout(open_timeout) ⇒ Object

Open timeout in seconds.



142
143
144
# File 'lib/savon/options.rb', line 142

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.



215
216
217
# File 'lib/savon/options.rb', line 215

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.



132
133
134
# File 'lib/savon/options.rb', line 132

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

#raise_errors(raise_errors) ⇒ Object

Whether or not to raise SOAP fault and HTTP errors.



181
182
183
# File 'lib/savon/options.rb', line 181

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

#read_timeout(read_timeout) ⇒ Object

Read timeout in seconds.



147
148
149
# File 'lib/savon/options.rb', line 147

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.



157
158
159
# File 'lib/savon/options.rb', line 157

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

#soap_version(soap_version) ⇒ Object

Changes the SOAP version to 1 or 2.



176
177
178
# File 'lib/savon/options.rb', line 176

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

#ssl_ca_cert(cert) ⇒ Object

Sets the ca cert to use.



260
261
262
# File 'lib/savon/options.rb', line 260

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

#ssl_ca_cert_file(file) ⇒ Object

Sets the ca cert file to use.



255
256
257
# File 'lib/savon/options.rb', line 255

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

#ssl_cert(cert) ⇒ Object

Sets the cert to use.



250
251
252
# File 'lib/savon/options.rb', line 250

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

#ssl_cert_file(file) ⇒ Object

Sets the cert file to use.



245
246
247
# File 'lib/savon/options.rb', line 245

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

#ssl_cert_key(key) ⇒ Object

Sets the cert key to use.



235
236
237
# File 'lib/savon/options.rb', line 235

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

#ssl_cert_key_file(file) ⇒ Object

Sets the cert key file to use.



230
231
232
# File 'lib/savon/options.rb', line 230

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.



240
241
242
# File 'lib/savon/options.rb', line 240

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

#ssl_verify_mode(verify_mode) ⇒ Object

Whether and how to to verify the connection.



225
226
227
# File 'lib/savon/options.rb', line 225

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

#ssl_version(version) ⇒ Object

Specifies the SSL version to use.



220
221
222
# File 'lib/savon/options.rb', line 220

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

#strip_namespaces(strip_namespaces) ⇒ Object

Instruct Nori whether to strip namespaces from XML nodes.



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

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



293
294
295
# File 'lib/savon/options.rb', line 293

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

#use_wsa_headers(use) ⇒ Object

Enable inclusion of WS-Addressing headers.



322
323
324
# File 'lib/savon/options.rb', line 322

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

#wsdl(wsdl_address) ⇒ Object

Location of the local or remote WSDL document.



107
108
109
# File 'lib/savon/options.rb', line 107

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