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

  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



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

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

#basic_auth(*credentials) ⇒ Object

HTTP basic auth credentials.



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

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



283
284
285
# File 'lib/savon/options.rb', line 283

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.



269
270
271
# File 'lib/savon/options.rb', line 269

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.



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

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

#digest_auth(*credentials) ⇒ Object

HTTP digest auth credentials.



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

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.



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

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



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

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

#endpoint(endpoint) ⇒ Object

SOAP endpoint.



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

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.



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

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.



208
209
210
# File 'lib/savon/options.rb', line 208

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

#follow_redirects(follow_redirects) ⇒ Object

Instruct requests to follow HTTP redirects.



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

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

#headers(headers) ⇒ Object

A Hash of HTTP headers.



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

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

#log(log) ⇒ Object

Whether or not to log.



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

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

#log_level(level) ⇒ Object

Changes the Logger's log level.



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

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.



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

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

#multipart(multipart) ⇒ Object

Instruct Savon to create a multipart response if available.



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

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

#namespace(namespace) ⇒ Object

Target namespace.



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

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

#namespace_identifier(identifier) ⇒ Object

The namespace identifer.



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

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

#namespaces(namespaces) ⇒ Object

Namespaces for the SOAP envelope.



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

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

#no_message_tag(bool) ⇒ Object



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

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

#ntlm(*credentials) ⇒ Object

NTLM auth credentials.



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

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

#open_timeout(open_timeout) ⇒ Object

Open timeout in seconds.



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

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.



213
214
215
# File 'lib/savon/options.rb', line 213

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.



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

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

#raise_errors(raise_errors) ⇒ Object

Whether or not to raise SOAP fault and HTTP errors.



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

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

#read_timeout(read_timeout) ⇒ Object

Read timeout in seconds.



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

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.



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

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

#soap_version(soap_version) ⇒ Object

Changes the SOAP version to 1 or 2.



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

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

#ssl_ca_cert_file(file) ⇒ Object

Sets the ca cert file to use.



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

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

#ssl_cert_file(file) ⇒ Object

Sets the cert file to use.



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

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

#ssl_cert_key_file(file) ⇒ Object

Sets the cert key file to use.



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

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.



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

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.



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

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

#ssl_version(version) ⇒ Object

Specifies the SSL version to use.



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

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

#strip_namespaces(strip_namespaces) ⇒ Object

Instruct Nori whether to strip namespaces from XML nodes.



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

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

#use_wsa_headers(use) ⇒ Object

Enable inclusion of WS-Addressing headers.



298
299
300
# File 'lib/savon/options.rb', line 298

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

#wsdl(wsdl_address) ⇒ Object

Location of the local or remote WSDL document.



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

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