Module: Fedex::WebServices::Definitions

Extended by:
Definitions
Included in:
Definitions, Request::Base, Service::Base
Defined in:
lib/fedex/web_services/definitions.rb

Constant Summary collapse

MODULE_PATH =
File.join(%w(fedex web_services definitions))

Instance Method Summary collapse

Instance Method Details

#generate_definitions(lib_dir, *wsdl_files) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/fedex/web_services/definitions.rb', line 26

def generate_definitions(lib_dir, *wsdl_files)
  require 'wsdl/soap/wsdl2ruby'
  require 'fileutils'

  wsdl_files.each do |wsdl_file|
    worker = WSDL::SOAP::WSDL2Ruby.new
    worker.basedir = FileUtils.mkdir_p(File.join(Dir.new(lib_dir), MODULE_PATH)).first
    worker.location = File.new(wsdl_file).path
    worker.logger.level = Logger::WARN
    worker.opt.update(
      "module_path"      => "Fedex::WebServices::Definitions",
      "mapping_registry" => nil,
      "driver"           => nil,
      "classdef"         => nil
    )
    worker.run
  end
end

#load_definitions(lib_dir) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fedex/web_services/definitions.rb', line 8

def load_definitions(lib_dir)
  $VERBOSE = $VERBOSE.tap do
    $VERBOSE = nil

    $:.unshift(lib_dir)
    $:.unshift(File.join(lib_dir, MODULE_PATH))
    Dir.glob(File.join(lib_dir, MODULE_PATH, "*DefinitionsDriver.rb")).each do |definition_file|
      begin
        require File.join(MODULE_PATH, File.basename(definition_file))
      rescue Exception
        raise "Error loading Fedex definition file #{definition_file}: #{$!.message}"
      end
    end
    $:.shift
    $:.shift
  end
end