Class: AdsCommon::Build::SavonGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/ads_common/build/savon_generator.rb

Overview

Contains the methods that handle wrapper code generation.

Instance Method Summary collapse

Constructor Details

#initialize(wsdl_url, code_path, api_name, version, service_name) ⇒ SavonGenerator

Create a new generator for given WSDL.

Args:

  • wsdl_url local or remote URL to pull WSDL data

  • code_path local path to store generated files

  • api_name an API name to generate for

  • version a version of the service

  • service_name a service name to generate stubs for



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/ads_common/build/savon_generator.rb', line 43

def initialize(wsdl_url, code_path, api_name, version, service_name)
  @wsdl_url = wsdl_url
  @code_path = code_path
  @generator_args = {
      :api_name => api_name,
      :version => version,
      :service_name => service_name,
      :require_path => @code_path.sub(/^lib\//, '')
  }
  @logger = Logger.new(STDOUT)
  @logger.level = Logger::INFO
  GoogleAdsSavon.configure do |config|
    config.logger = @logger
    config.log_level = :debug
  end
  HTTPI.logger = @logger
  HTTPI.log_level = :debug
end

Instance Method Details

#process_wsdlObject

Pull, parse and generate wrapper for WSDL on given URL.

Args:

  • none, instance variables are used

Returns:

  • none



70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/ads_common/build/savon_generator.rb', line 70

def process_wsdl()
  proxy_path = get_proxy_path()
  client = GoogleAdsSavon::Client.new(@wsdl_url) do |_, httpi|
    httpi.proxy = proxy_path unless proxy_path.nil? || proxy_path.empty?
  end
  begin
    @generator_args[:namespace] = client.wsdl.namespace
    do_process_wsdl_client(client)
  rescue AdsCommon::Errors::Error => e
    error_msg = "An unrecoverable error occured during code generation"
    error_msg += " for service [%s]: %s" % [@wsdl_url, e]
    raise AdsCommon::Errors::BuildError, error_msg
  end
end