Sha256: 01389de8ad37aef2bf6bfba595b10abcabc666ef3617a0db746a731583df79fc
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
module Savon module Validation # Validates a given +value+ of a given +type+. Raises an ArgumentError # in case the value is not valid. def validate!(type, value) case type when :endpoint then validate_endpoint value when :soap_version then validate_soap_version value when :soap_body then validate_soap_body value when :response_process then validate_response_process value when :wsse_credentials then validate_wsse_credentials value end true end # Raises an ArgumentError for a given +argument+. Also accepts the invalid # +value+ and adds it to the error message. def invalid!(argument, value = nil) message = "Invalid argument '#{argument}'" message << ": #{value}" if value raise ArgumentError, message end private # Validates a given +endpoint+. def validate_endpoint(endpoint) invalid! :endpoint, endpoint unless /^(http|https):\/\// === endpoint end # Validates a given +soap_version+. def validate_soap_version(soap_version) invalid! :soap_version, soap_version unless SOAPVersions.include? soap_version end # Validates a given +soap_body+. def validate_soap_body(soap_body) invalid! :soap_body, soap_body unless soap_body.kind_of?(Hash) || soap_body.respond_to?(:to_s) end # Validates a given +response_process+. def validate_response_process(response_process) invalid! :response_process, response_process unless response_process.respond_to? :call end # Validates a given Hash of +wsse_credentials+. def validate_wsse_credentials(wsse) invalid! :wsse_credentials unless wsse[:username] && wsse[:password] invalid! :wsse_username, wsse[:username] unless wsse[:username].respond_to? :to_s invalid! :wsse_password, wsse[:password] unless wsse[:password].respond_to? :to_s end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
savon-0.5.3 | lib/savon/validation.rb |