Class: Savon::GlobalOptions

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

Instance Attribute Summary

Attributes inherited from Options

#option_type

Instance Method Summary collapse

Methods inherited from Options

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

Constructor Details

#initialize(options = {}) ⇒ GlobalOptions

Returns a new instance of GlobalOptions.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/savon/options.rb', line 43

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

  defaults = {
    :encoding                  => "UTF-8",
    :soap_version              => 1,
    :namespaces                => {},
    :logger                    => Logger.new($stdout),
    :log                       => true,
    :filters                   => [],
    :pretty_print_xml          => false,
    :raise_errors              => true,
    :strip_namespaces          => true,
    :convert_response_tags_to  => lambda { |tag| tag.snakecase.to_sym},
    :multipart                 => 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

#basic_auth(*credentials) ⇒ Object

HTTP basic auth credentials.



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

def basic_auth(*credentials)
  @options[:basic_auth] = credentials.flatten
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.



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

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.



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

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

#digest_auth(*credentials) ⇒ Object

HTTP digest auth credentials.



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

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.



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

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



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

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

#endpoint(endpoint) ⇒ Object

SOAP endpoint.



77
78
79
# File 'lib/savon/options.rb', line 77

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.



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

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.



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

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

#headers(headers) ⇒ Object

A Hash of HTTP headers.



102
103
104
# File 'lib/savon/options.rb', line 102

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

#log(log) ⇒ Object

Whether or not to log.



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

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

#log_level(level) ⇒ Object

Changes the Logger's log level.



162
163
164
165
166
167
168
169
170
171
# File 'lib/savon/options.rb', line 162

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.



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

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

#multipart(multipart) ⇒ Object

Instruct Savon to create a multipart response if available.



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

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

#namespace(namespace) ⇒ Object

Target namespace.



82
83
84
# File 'lib/savon/options.rb', line 82

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

#namespace_identifier(identifier) ⇒ Object

The namespace identifer.



87
88
89
# File 'lib/savon/options.rb', line 87

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

#namespaces(namespaces) ⇒ Object

Namespaces for the SOAP envelope.



92
93
94
# File 'lib/savon/options.rb', line 92

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

#ntlm(*credentials) ⇒ Object

NTLM auth credentials.



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

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

#open_timeout(open_timeout) ⇒ Object

Open timeout in seconds.



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

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.



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

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.



97
98
99
# File 'lib/savon/options.rb', line 97

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

#raise_errors(raise_errors) ⇒ Object

Whether or not to raise SOAP fault and HTTP errors.



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

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

#read_timeout(read_timeout) ⇒ Object

Read timeout in seconds.



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

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.



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

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

#soap_version(soap_version) ⇒ Object

Changes the SOAP version to 1 or 2.



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

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

#ssl_ca_cert_file(file) ⇒ Object

Sets the ca cert file to use.



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

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

#ssl_cert_file(file) ⇒ Object

Sets the cert file to use.



204
205
206
# File 'lib/savon/options.rb', line 204

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

#ssl_cert_key_file(file) ⇒ Object

Sets the cert key file to use.



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

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.



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

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.



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

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

#ssl_version(version) ⇒ Object

Specifies the SSL version to use.



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

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

#strip_namespaces(strip_namespaces) ⇒ Object

Instruct Nori whether to strip namespaces from XML nodes.



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

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

#wsdl(wsdl_address) ⇒ Object

Location of the local or remote WSDL document.



72
73
74
# File 'lib/savon/options.rb', line 72

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

#wsse_auth(*credentials) ⇒ Object

WSSE auth credentials for Akami.



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

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

#wsse_timestamp(*timestamp) ⇒ Object

Instruct Akami to enable wsu:Timestamp headers.



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

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