class Soybean::Generators::MappingGenerator
Attributes
name[R]
Public Class Methods
new(schema, wsdl)
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 12 def initialize(schema, wsdl) @schema = schema @wsdl = wsdl @name = namespace.underscore @name_creator = WSDL::SOAP::ClassNameCreator.new @defined_const = {} end
Public Instance Methods
dir()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 20 def dir 'mappings' end
encoded_creator()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 59 def encoded_creator EncodedMappingRegistryCreator.new(@schema, @name_creator, module_name, @defined_const, mapping_cache[:encoded]) end
generate() { |join, dump| ... }
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 24 def generate m = ModuleDef.new("#{@name.camelize}") varname = 'EncodedRegistry' m.def_code(encoded_creator.dump(varname)) varname = 'LiteralRegistry' m.def_code(literal_creator.dump(varname)) @defined_const.each do |ns, tag| m.def_const(tag, dq(ns)) end registry = ModuleDef.new("Mappings", [m]) @schema.importedschema.values.map(&:targetnamespace).map do |ns| registry.def_require('mappings/'+URI.parse(ns).path[1..-2].underscore) end registry.def_require(type_path) registry.def_code('EncodedRegistry ||= ::SOAP::Mapping::EncodedRegistry.new') registry.def_code('LiteralRegistry ||= ::SOAP::Mapping::LiteralRegistry.new') if block_given? yield File.join(dir, filename), registry.dump else registry.dump end end
literal_creator()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 55 def literal_creator LiteralMappingRegistryCreator.new(@schema, @name_creator, module_name, @defined_const, mapping_cache[:literal]) end
module_name()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 76 def module_name "::" + namespace.camelize end
name_from_namespace(ns)
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 63 def name_from_namespace(ns) name = URI.parse(ns).path.split('/').delete_if { |part| part.empty? || part == 'type' }.last (name || 'base').underscore.gsub(/_service$/, '') end
namespace()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 68 def namespace URI.parse(@schema.targetnamespace).path[1..-2] end
type_path()
click to toggle source
# File lib/soybean/generators/mapping_generator.rb, line 72 def type_path "types/" + namespace.underscore end