def extract_options(args)
      attributes = Hash === args.last ? args.pop : {}
      body = attributes.delete(:body)
      soap_action = attributes.delete(:soap_action)

      namespace_identifier = args.size > 1 ? args.shift.to_sym : nil
      input = args.first

      remove_blank_values(
        :namespace_identifier => namespace_identifier,
        :input                => input,
        :attributes           => attributes,
        :body                 => body,
        :soap_action          => soap_action
      )
    end
def extract_options(args)
      attributes = Hash === args.last ? args.pop : {}
      body = attributes.delete(:body)
      soap_action = attributes.delete(:soap_action)

      namespace_identifier = args.size > 1 ? args.shift.to_sym : nil
      input = args.first

      remove_blank_values(
        :namespace_identifier => namespace_identifier,
        :input                => input,
        :attributes           => attributes,
        :body                 => body,
        :soap_action          => soap_action
      )
    end
Expects an Array of +args+ and returns a Hash containing the SOAP input,
 the namespace (might be +nil+), the SOAP action (might be +nil+),
 the SOAP body (might be +nil+), and a Hash of attributes for the input
 tag (which might be empty).