class WsdlMapper::Generation::Facade

@abstract

Public Class Methods

new(file:, out:, module_path: [], docs: false, separate_modules: true, namer: nil) click to toggle source

@param [String] file Full path to the XSD or WSDL file @param [String] out Full path to the desired output directory @param [Array<String>] module_path Array of module names, to use as root module, i.e. `['Foo', 'Bar']` for `Foo::Bar` @param [true, false] docs Set to `true` to generate documentation @param [true, false] separate_modules Set to `true` to separate types and (de)serializers into different modules @param [WsdlMapper::Naming::AbstractNamer] namer Inject a namer instance here to be used

# File lib/wsdl_mapper/generation/facade.rb, line 18
def initialize(file:, out:, module_path: [], docs: false, separate_modules: true, namer: nil)
  @file = file
  @out = out
  @module_path = module_path
  @docs = docs
  @separate_modules = separate_modules
  @namer = namer
end

Public Instance Methods

generate() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 27
def generate
  generator.generate parser.parse document
end

Protected Instance Methods

context() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 32
def context
  @context ||= WsdlMapper::Generation::Context.new @out
end
document() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 50
def document
  @document ||= Nokogiri::XML::Document.parse File.read @file
end
generator() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 46
def generator
  @generator ||= generator_class.new context, namer: namer
end
generator_class() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 42
def generator_class
  raise NotImplementedError
end
namer() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 36
def namer
  @namer ||= @separate_modules ?
    WsdlMapper::Naming::SeparatingNamer.new(module_path: @module_path) :
    WsdlMapper::Naming::DefaultNamer.new(module_path: @module_path)
end
parser() click to toggle source
# File lib/wsdl_mapper/generation/facade.rb, line 54
def parser
  @parser ||= WsdlMapper::DomParsing::Parser.new
end