class WsdlMapper::SvcGeneration::SvcGenerator
Attributes
context[R]
namer[R]
operation_d10r_generator[R]
operation_generator[R]
operation_s8r_generator[R]
port_generator[R]
proxy_generator[R]
schema_generator[R]
service_generator[R]
service_namer[R]
Public Class Methods
new(context, formatter_factory: DefaultFormatter, service_namer: WsdlMapper::Naming::DefaultServiceNamer.new, namer: WsdlMapper::Naming::DefaultNamer.new, service_generator_factory: ServiceGenerator, port_generator_factory: PortGenerator, proxy_generator_factory: ProxyGenerator, operation_generator_factory: OperationGenerator, operation_s8r_generator_factory: OperationS8rGenerator, operation_d10r_generator_factory: OperationD10rGenerator, schema_generator: nil)
click to toggle source
Calls superclass method
WsdlMapper::Generation::Base::new
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 29 def initialize(context, formatter_factory: DefaultFormatter, service_namer: WsdlMapper::Naming::DefaultServiceNamer.new, namer: WsdlMapper::Naming::DefaultNamer.new, service_generator_factory: ServiceGenerator, port_generator_factory: PortGenerator, proxy_generator_factory: ProxyGenerator, operation_generator_factory: OperationGenerator, operation_s8r_generator_factory: OperationS8rGenerator, operation_d10r_generator_factory: OperationD10rGenerator, schema_generator: nil) super(context) @formatter_factory = formatter_factory @service_namer = service_namer @namer = namer @service_generator = service_generator_factory.new(self) @port_generator = port_generator_factory.new(self) @proxy_generator = proxy_generator_factory.new(self) @operation_generator = operation_generator_factory.new(self) @operation_s8r_generator = operation_s8r_generator_factory.new(self) @operation_d10r_generator = operation_d10r_generator_factory.new(self) @schema_generator = schema_generator || WsdlMapper::DomGeneration::SchemaGenerator.new(context, ctr_generator_factory: WsdlMapper::DomGeneration::DefaultCtrGenerator, namer: namer ) end
Public Instance Methods
api_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 123 def api_base @api_base ||= runtime_base 'Api', 'api' end
body_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 147 def body_base @body_base ||= runtime_base 'Body', 'body' end
generate(desc)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 58 def generate(desc) result = Result.new description: desc generate_api desc, result result end
generate_api(desc, result)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 70 def generate_api(desc, result) name = @service_namer.get_api_name modules = get_module_names name services = desc.each_service.map do |service| TypeToGenerate.new service, @service_namer.get_service_name(service), @service_namer.get_property_name(service) end services.each do |service| @service_generator.generate_service service, result end type_file_for name, result do |f| f.requires api_base.require_path f.requires(*services.map { |s| s.name.require_path }) f.in_modules modules do generate_api_class f, name, services end end end
generate_api_class(f, name, services)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 91 def generate_api_class(f, name, services) f.in_sub_class name.class_name, api_base.name do generate_api_service_accessors f, services generate_api_ctr f, services end end
generate_api_ctr(f, services)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 102 def generate_api_ctr(f, services) f.in_def :initialize, 'backend' do f.call :super, 'backend' services.each do |s| f.assignment s.property_name.var_name, "#{s.name.name}.new(self)" f.statement "@_services << #{s.property_name.var_name}" end end end
generate_api_service_accessors(f, services)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 98 def generate_api_service_accessors(f, services) f.attr_readers(*services.map { |s| s.property_name.attr_name }) end
get_formatter(io)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 66 def get_formatter(io) @formatter_factory.new io end
get_ruby_type_name(type)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 167 def get_ruby_type_name(type) @schema_generator.get_ruby_type_name type end
get_type_name(type)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 163 def get_type_name(type) @schema_generator.get_type_name type end
header_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 143 def header_base @header_base ||= runtime_base 'Header', 'header' end
in_classes(f, *names, &block)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 112 def in_classes(f, *names, &block) next_block = if names.length > 1 proc do in_classes f, *names.drop(1), &block end else block end f.in_class names.first, &next_block end
operation_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 139 def operation_base @operation_base ||= runtime_base 'Operation', 'operation' end
port_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 131 def port_base @port_base ||= runtime_base 'Port', 'port' end
proxy_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 135 def proxy_base @proxy_base ||= runtime_base 'Proxy', 'proxy' end
runtime_base(name, file_name)
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 151 def runtime_base(name, file_name) WsdlMapper::Naming::TypeName.new name, runtime_modules, "#{file_name}.rb", runtime_path end
runtime_modules()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 155 def runtime_modules @runtime_modules ||= %w[WsdlMapper Runtime] end
runtime_path()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 159 def runtime_path @runtime_path ||= %w[wsdl_mapper runtime] end
service_base()
click to toggle source
# File lib/wsdl_mapper/svc_generation/svc_generator.rb, line 127 def service_base @service_base ||= runtime_base 'Service', 'service' end