class WsdlMapper::SvcGeneration::PortGenerator

Public Instance Methods

generate_port(service, port, result) click to toggle source
# File lib/wsdl_mapper/svc_generation/port_generator.rb, line 6
def generate_port(service, port, result)
  modules = get_module_names service.name
  ops = port.type.binding.each_operation.map do |op|
    TypeToGenerate.new op, service_namer.get_operation_name(service.type, port.type, op), service_namer.get_property_name(op)
  end

  proxy_generator.generate_proxy service, port, ops, result

  ops.each do |op|
    operation_generator.generate_operation service, port, op, result
  end

  type_file_for port.name, result do |f|
    f.requires port_base.require_path

    f.in_modules modules do
      f.in_class service.name.class_name do
        generate_port_class f, ops, port
      end
    end
  end
end
generate_port_class(f, ops, port) click to toggle source
# File lib/wsdl_mapper/svc_generation/port_generator.rb, line 29
def generate_port_class(f, ops, port)
  f.in_sub_class port.name.class_name, port_base.name do
    f.requires(*ops.map { |op| op.name.require_path })
    generate_port_operation_accessors f, ops
    generate_port_ctr f, ops, port
  end
end
generate_port_ctr(f, ops, port) click to toggle source
# File lib/wsdl_mapper/svc_generation/port_generator.rb, line 37
def generate_port_ctr(f, ops, port)
  f.in_def :initialize, 'api', 'service' do
    f.call :super, 'api', 'service'
    f.assignment '@_style', port.type.binding.style.inspect
    f.assignment '@_transport', port.type.binding.transport.inspect
    f.assignment '@_soap_address', port.type.address_location.inspect

    ops.each do |op|
      f.assignment op.property_name.var_name, op.name.name + '.new(api, service, self)'
      f.statement "@_operations << #{op.property_name.var_name}"
    end
  end
end
generate_port_operation_accessors(f, ops) click to toggle source
# File lib/wsdl_mapper/svc_generation/port_generator.rb, line 51
def generate_port_operation_accessors(f, ops)
  f.attr_readers(*ops.map { |op| op.property_name.attr_name })
end