class Soybean::Generators::ServiceGenerator

Attributes

path[R]
wsdl[R]
wsdl_location[R]

Public Class Methods

new(path, wsdl, spec_dir) click to toggle source
# File lib/soybean/generators/service_generator.rb, line 6
def initialize(path, wsdl, spec_dir)
  @path, @wsdl_location = path, wsdl
  @wsdl = import_wsdl
  @spec_dir = spec_dir
  @schemes = @wsdl.importedschema.keys
end

Public Instance Methods

engines() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 39
def engines
  @engines ||= model.map { |m| EngineGenerator.new(m) }
end
generate() { |fullpath, generate, generator| ... } click to toggle source
# File lib/soybean/generators/service_generator.rb, line 17
def generate
  (schemes + mappings + interface + model + specs + engines).map do |generator|
    yield generator.fullpath(path), generator.generate, generator
  end
end
interface() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 27
def interface
  @interface ||= [InterfaceGenerator.new(@wsdl)]
end
mappings() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 23
def mappings
  @mappings ||= schemes.map { |gen| MappingGenerator.new(gen.xsd, @wsdl) }
end
model() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 31
def model
  @model ||= [ModelGenerator.new(@wsdl)]
end
schemes() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 13
def schemes
  @schemes.map { |url| TypesGenerator.new(url) }
end
specs() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 43
def specs
  @specs ||= model.map { |m| ModelSpecGenerator.new(m, @spec_dir) }
end
static() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 35
def static
  @static ||= [StaticGenerator.new(@wsdl)]
end

Protected Instance Methods

dirs() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 49
def dirs
  @dirs ||= %w{types mappings models interfaces}.inject(HashWithIndifferentAccess.new) do |dirs, dir|
    dirs[dir.singularize] = Pathname.new @base.empty_directory(File.join(destination_dir, dir))
    dirs
  end
end
import_wsdl() click to toggle source
# File lib/soybean/generators/service_generator.rb, line 56
def import_wsdl
  WSDL::Importer.import(@wsdl_location)
end