wsdl-mapper 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +21 -0
  3. data/.gitignore +13 -0
  4. data/.rubocop.yml +1156 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/.yardopts +3 -0
  8. data/Gemfile +4 -0
  9. data/Guardfile +49 -0
  10. data/LICENSE +21 -0
  11. data/README.md +76 -0
  12. data/Rakefile +18 -0
  13. data/bin/wsdl-mapper +7 -0
  14. data/doc/WsdlMapper.html +129 -0
  15. data/doc/WsdlMapper/Cli.html +124 -0
  16. data/doc/WsdlMapper/Cli/Cli.html +132 -0
  17. data/doc/WsdlMapper/Cli/Generate.html +482 -0
  18. data/doc/WsdlMapper/CoreExt.html +115 -0
  19. data/doc/WsdlMapper/CoreExt/TimeDuration.html +1476 -0
  20. data/doc/WsdlMapper/D10rGeneration.html +117 -0
  21. data/doc/WsdlMapper/D10rGeneration/D10rGenerator.html +473 -0
  22. data/doc/WsdlMapper/D10rGeneration/Facade.html +208 -0
  23. data/doc/WsdlMapper/Deserializers.html +119 -0
  24. data/doc/WsdlMapper/Deserializers/AttrMapping.html +617 -0
  25. data/doc/WsdlMapper/Deserializers/ClassMapping.html +1157 -0
  26. data/doc/WsdlMapper/Deserializers/ClassMapping/Delegate.html +303 -0
  27. data/doc/WsdlMapper/Deserializers/Deserializer.html +760 -0
  28. data/doc/WsdlMapper/Deserializers/ElementDirectory.html +554 -0
  29. data/doc/WsdlMapper/Deserializers/ElementDirectory/ElementItem.html +541 -0
  30. data/doc/WsdlMapper/Deserializers/Errors.html +115 -0
  31. data/doc/WsdlMapper/Deserializers/Errors/UnknownAttributeError.html +147 -0
  32. data/doc/WsdlMapper/Deserializers/Errors/UnknownElementError.html +147 -0
  33. data/doc/WsdlMapper/Deserializers/Errors/UnknownError.html +415 -0
  34. data/doc/WsdlMapper/Deserializers/Errors/UnknownTypeError.html +147 -0
  35. data/doc/WsdlMapper/Deserializers/Frame.html +1038 -0
  36. data/doc/WsdlMapper/Deserializers/LazyLoadingDeserializer.html +287 -0
  37. data/doc/WsdlMapper/Deserializers/PropMapping.html +365 -0
  38. data/doc/WsdlMapper/Deserializers/SaxDocument.html +773 -0
  39. data/doc/WsdlMapper/Deserializers/SoapArrayMapping.html +452 -0
  40. data/doc/WsdlMapper/Deserializers/TypeDirectory.html +386 -0
  41. data/doc/WsdlMapper/Dom.html +123 -0
  42. data/doc/WsdlMapper/Dom/Attribute.html +1156 -0
  43. data/doc/WsdlMapper/Dom/Attribute/Ref.html +222 -0
  44. data/doc/WsdlMapper/Dom/Bounds.html +472 -0
  45. data/doc/WsdlMapper/Dom/Builder.html +696 -0
  46. data/doc/WsdlMapper/Dom/BuiltinType.html +246 -0
  47. data/doc/WsdlMapper/Dom/ComplexType.html +1448 -0
  48. data/doc/WsdlMapper/Dom/Directory.html +735 -0
  49. data/doc/WsdlMapper/Dom/Documentation.html +428 -0
  50. data/doc/WsdlMapper/Dom/Element.html +486 -0
  51. data/doc/WsdlMapper/Dom/EnumerationValue.html +213 -0
  52. data/doc/WsdlMapper/Dom/Name.html +908 -0
  53. data/doc/WsdlMapper/Dom/Namespaces.html +618 -0
  54. data/doc/WsdlMapper/Dom/Property.html +1372 -0
  55. data/doc/WsdlMapper/Dom/Property/Ref.html +724 -0
  56. data/doc/WsdlMapper/Dom/Schema.html +1480 -0
  57. data/doc/WsdlMapper/Dom/ShallowSchema.html +499 -0
  58. data/doc/WsdlMapper/Dom/SimpleType.html +1254 -0
  59. data/doc/WsdlMapper/Dom/SoapEncodingType.html +177 -0
  60. data/doc/WsdlMapper/Dom/TypeBase.html +605 -0
  61. data/doc/WsdlMapper/Dom/Validator.html +334 -0
  62. data/doc/WsdlMapper/Dom/Validator/Error.html +352 -0
  63. data/doc/WsdlMapper/DomGeneration.html +117 -0
  64. data/doc/WsdlMapper/DomGeneration/DefaultClassGenerator.html +251 -0
  65. data/doc/WsdlMapper/DomGeneration/DefaultCtrGenerator.html +404 -0
  66. data/doc/WsdlMapper/DomGeneration/DefaultEnumGenerator.html +321 -0
  67. data/doc/WsdlMapper/DomGeneration/DefaultValueDefaultsGenerator.html +368 -0
  68. data/doc/WsdlMapper/DomGeneration/DefaultValueGenerator.html +811 -0
  69. data/doc/WsdlMapper/DomGeneration/DefaultWrappingTypeGenerator.html +249 -0
  70. data/doc/WsdlMapper/DomGeneration/DocumentedClassGenerator.html +165 -0
  71. data/doc/WsdlMapper/DomGeneration/DocumentedCtrGenerator.html +336 -0
  72. data/doc/WsdlMapper/DomGeneration/DocumentedEnumGenerator.html +171 -0
  73. data/doc/WsdlMapper/DomGeneration/DocumentedSchemaGenerator.html +327 -0
  74. data/doc/WsdlMapper/DomGeneration/DocumentedWrappingTypeGenerator.html +165 -0
  75. data/doc/WsdlMapper/DomGeneration/Facade.html +260 -0
  76. data/doc/WsdlMapper/DomGeneration/GeneratorBase.html +234 -0
  77. data/doc/WsdlMapper/DomGeneration/NullCtrGenerator.html +356 -0
  78. data/doc/WsdlMapper/DomGeneration/SchemaGenerator.html +1407 -0
  79. data/doc/WsdlMapper/DomParsing.html +119 -0
  80. data/doc/WsdlMapper/DomParsing/AbstractResolver.html +228 -0
  81. data/doc/WsdlMapper/DomParsing/AnnotationParser.html +331 -0
  82. data/doc/WsdlMapper/DomParsing/AttributeParser.html +395 -0
  83. data/doc/WsdlMapper/DomParsing/ComplexTypeParser.html +1267 -0
  84. data/doc/WsdlMapper/DomParsing/DefaultResolver.html +278 -0
  85. data/doc/WsdlMapper/DomParsing/ElementParser.html +303 -0
  86. data/doc/WsdlMapper/DomParsing/ImportParser.html +341 -0
  87. data/doc/WsdlMapper/DomParsing/Linker.html +292 -0
  88. data/doc/WsdlMapper/DomParsing/LocalFileResolver.html +270 -0
  89. data/doc/WsdlMapper/DomParsing/Parser.html +1009 -0
  90. data/doc/WsdlMapper/DomParsing/Parser/InvalidNsException.html +131 -0
  91. data/doc/WsdlMapper/DomParsing/Parser/InvalidRootException.html +131 -0
  92. data/doc/WsdlMapper/DomParsing/Parser/ParserException.html +127 -0
  93. data/doc/WsdlMapper/DomParsing/ParserBase.html +190 -0
  94. data/doc/WsdlMapper/DomParsing/SimpleTypeParser.html +275 -0
  95. data/doc/WsdlMapper/DomParsing/UrlResolver.html +199 -0
  96. data/doc/WsdlMapper/DomParsing/Xsd.html +279 -0
  97. data/doc/WsdlMapper/Generation.html +121 -0
  98. data/doc/WsdlMapper/Generation/AbstractFormatter.html +2143 -0
  99. data/doc/WsdlMapper/Generation/Base.html +707 -0
  100. data/doc/WsdlMapper/Generation/Context.html +430 -0
  101. data/doc/WsdlMapper/Generation/DefaultFormatter.html +1803 -0
  102. data/doc/WsdlMapper/Generation/DefaultModuleGenerator.html +295 -0
  103. data/doc/WsdlMapper/Generation/Facade.html +379 -0
  104. data/doc/WsdlMapper/Generation/Result.html +749 -0
  105. data/doc/WsdlMapper/Generation/Result/ModuleTreeNode.html +432 -0
  106. data/doc/WsdlMapper/Generation/TypeToGenerate.html +352 -0
  107. data/doc/WsdlMapper/Generation/YardDocFormatter.html +902 -0
  108. data/doc/WsdlMapper/Naming.html +119 -0
  109. data/doc/WsdlMapper/Naming/AbstractNamer.html +890 -0
  110. data/doc/WsdlMapper/Naming/AbstractServiceNamer.html +2148 -0
  111. data/doc/WsdlMapper/Naming/DefaultNamer.html +1512 -0
  112. data/doc/WsdlMapper/Naming/DefaultNamer/InlineType.html +218 -0
  113. data/doc/WsdlMapper/Naming/DefaultServiceNamer.html +1605 -0
  114. data/doc/WsdlMapper/Naming/EnumerationValueName.html +397 -0
  115. data/doc/WsdlMapper/Naming/Inflector.html +408 -0
  116. data/doc/WsdlMapper/Naming/NamerBase.html +373 -0
  117. data/doc/WsdlMapper/Naming/PropertyName.html +397 -0
  118. data/doc/WsdlMapper/Naming/SeparatingNamer.html +376 -0
  119. data/doc/WsdlMapper/Naming/TypeName.html +1040 -0
  120. data/doc/WsdlMapper/Parsing.html +119 -0
  121. data/doc/WsdlMapper/Parsing/Base.html +359 -0
  122. data/doc/WsdlMapper/Parsing/Logging.html +305 -0
  123. data/doc/WsdlMapper/Parsing/Logging/LogMsg.html +264 -0
  124. data/doc/WsdlMapper/Runtime.html +119 -0
  125. data/doc/WsdlMapper/Runtime/Api.html +628 -0
  126. data/doc/WsdlMapper/Runtime/AsyncHttpBackend.html +674 -0
  127. data/doc/WsdlMapper/Runtime/BackendBase.html +351 -0
  128. data/doc/WsdlMapper/Runtime/Body.html +209 -0
  129. data/doc/WsdlMapper/Runtime/Errors.html +119 -0
  130. data/doc/WsdlMapper/Runtime/Errors/Error.html +289 -0
  131. data/doc/WsdlMapper/Runtime/Errors/HTTPError.html +370 -0
  132. data/doc/WsdlMapper/Runtime/Errors/SoapFault.html +298 -0
  133. data/doc/WsdlMapper/Runtime/Errors/TransportError.html +298 -0
  134. data/doc/WsdlMapper/Runtime/Header.html +120 -0
  135. data/doc/WsdlMapper/Runtime/InputS8r.html +139 -0
  136. data/doc/WsdlMapper/Runtime/Message.html +488 -0
  137. data/doc/WsdlMapper/Runtime/MiddlewareStack.html +1266 -0
  138. data/doc/WsdlMapper/Runtime/Middlewares.html +149 -0
  139. data/doc/WsdlMapper/Runtime/Middlewares/AbstractLogger.html +206 -0
  140. data/doc/WsdlMapper/Runtime/Middlewares/AsyncDispatcher.html +270 -0
  141. data/doc/WsdlMapper/Runtime/Middlewares/AsyncMessageFactory.html +205 -0
  142. data/doc/WsdlMapper/Runtime/Middlewares/AsyncRequestFactory.html +205 -0
  143. data/doc/WsdlMapper/Runtime/Middlewares/AsyncRequestLogger.html +224 -0
  144. data/doc/WsdlMapper/Runtime/Middlewares/AsyncResponseFactory.html +205 -0
  145. data/doc/WsdlMapper/Runtime/Middlewares/AsyncResponseLogger.html +224 -0
  146. data/doc/WsdlMapper/Runtime/Middlewares/Noop.html +189 -0
  147. data/doc/WsdlMapper/Runtime/Middlewares/SimpleDispatcher.html +628 -0
  148. data/doc/WsdlMapper/Runtime/Middlewares/SimpleMessageFactory.html +263 -0
  149. data/doc/WsdlMapper/Runtime/Middlewares/SimpleRequestFactory.html +254 -0
  150. data/doc/WsdlMapper/Runtime/Middlewares/SimpleRequestLogger.html +222 -0
  151. data/doc/WsdlMapper/Runtime/Middlewares/SimpleResponseFactory.html +250 -0
  152. data/doc/WsdlMapper/Runtime/Middlewares/SimpleResponseLogger.html +218 -0
  153. data/doc/WsdlMapper/Runtime/Operation.html +1231 -0
  154. data/doc/WsdlMapper/Runtime/OutputS8r.html +139 -0
  155. data/doc/WsdlMapper/Runtime/Port.html +504 -0
  156. data/doc/WsdlMapper/Runtime/Proxy.html +228 -0
  157. data/doc/WsdlMapper/Runtime/Request.html +736 -0
  158. data/doc/WsdlMapper/Runtime/Response.html +585 -0
  159. data/doc/WsdlMapper/Runtime/S8rBase.html +753 -0
  160. data/doc/WsdlMapper/Runtime/Service.html +396 -0
  161. data/doc/WsdlMapper/Runtime/SimpleHttpBackend.html +260 -0
  162. data/doc/WsdlMapper/Runtime/SimplerInspect.html +205 -0
  163. data/doc/WsdlMapper/S8rGeneration.html +117 -0
  164. data/doc/WsdlMapper/S8rGeneration/Facade.html +208 -0
  165. data/doc/WsdlMapper/S8rGeneration/S8rGenerator.html +415 -0
  166. data/doc/WsdlMapper/Serializers.html +117 -0
  167. data/doc/WsdlMapper/Serializers/AbstractResolver.html +224 -0
  168. data/doc/WsdlMapper/Serializers/SerializerCore.html +710 -0
  169. data/doc/WsdlMapper/Serializers/SerializerFactory.html +326 -0
  170. data/doc/WsdlMapper/Serializers/TypeDirectory.html +556 -0
  171. data/doc/WsdlMapper/Serializers/TypeDirectory/TypeItem.html +388 -0
  172. data/doc/WsdlMapper/SvcDesc.html +158 -0
  173. data/doc/WsdlMapper/SvcDesc/Envelope.html +348 -0
  174. data/doc/WsdlMapper/SvcDesc/Fault.html +580 -0
  175. data/doc/WsdlMapper/SvcDesc/Wsdl11.html +121 -0
  176. data/doc/WsdlMapper/SvcDesc/Wsdl11/Base.html +352 -0
  177. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding.html +873 -0
  178. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/Body.html +708 -0
  179. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/Fault.html +358 -0
  180. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/Header.html +408 -0
  181. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/HeaderBase.html +775 -0
  182. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/HeaderFault.html +138 -0
  183. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/InputOutput.html +539 -0
  184. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/Operation.html +727 -0
  185. data/doc/WsdlMapper/SvcDesc/Wsdl11/Binding/SoapFault.html +387 -0
  186. data/doc/WsdlMapper/SvcDesc/Wsdl11/Description.html +1272 -0
  187. data/doc/WsdlMapper/SvcDesc/Wsdl11/Message.html +467 -0
  188. data/doc/WsdlMapper/SvcDesc/Wsdl11/Message/Part.html +426 -0
  189. data/doc/WsdlMapper/SvcDesc/Wsdl11/PortType.html +499 -0
  190. data/doc/WsdlMapper/SvcDesc/Wsdl11/PortType/InputOutput.html +290 -0
  191. data/doc/WsdlMapper/SvcDesc/Wsdl11/PortType/Operation.html +659 -0
  192. data/doc/WsdlMapper/SvcDesc/Wsdl11/Service.html +335 -0
  193. data/doc/WsdlMapper/SvcDesc/Wsdl11/Service/Port.html +358 -0
  194. data/doc/WsdlMapper/SvcDescParsing.html +119 -0
  195. data/doc/WsdlMapper/SvcDescParsing/BindingParser.html +1271 -0
  196. data/doc/WsdlMapper/SvcDescParsing/Linker.html +308 -0
  197. data/doc/WsdlMapper/SvcDescParsing/MessageParser.html +419 -0
  198. data/doc/WsdlMapper/SvcDescParsing/Parser.html +972 -0
  199. data/doc/WsdlMapper/SvcDescParsing/ParserBase.html +215 -0
  200. data/doc/WsdlMapper/SvcDescParsing/PortTypeParser.html +757 -0
  201. data/doc/WsdlMapper/SvcDescParsing/ServiceParser.html +541 -0
  202. data/doc/WsdlMapper/SvcDescParsing/Soap.html +162 -0
  203. data/doc/WsdlMapper/SvcDescParsing/SoapEnc.html +137 -0
  204. data/doc/WsdlMapper/SvcDescParsing/SoapHttp.html +127 -0
  205. data/doc/WsdlMapper/SvcDescParsing/TypesParser.html +397 -0
  206. data/doc/WsdlMapper/SvcDescParsing/Wsdl11.html +201 -0
  207. data/doc/WsdlMapper/SvcGeneration.html +117 -0
  208. data/doc/WsdlMapper/SvcGeneration/DocumentedOperationGenerator.html +828 -0
  209. data/doc/WsdlMapper/SvcGeneration/DocumentedPortGenerator.html +256 -0
  210. data/doc/WsdlMapper/SvcGeneration/DocumentedProxyGenerator.html +332 -0
  211. data/doc/WsdlMapper/SvcGeneration/DocumentedServiceGenerator.html +258 -0
  212. data/doc/WsdlMapper/SvcGeneration/DocumentedSvcGenerator.html +331 -0
  213. data/doc/WsdlMapper/SvcGeneration/Facade.html +814 -0
  214. data/doc/WsdlMapper/SvcGeneration/GeneratorBase.html +239 -0
  215. data/doc/WsdlMapper/SvcGeneration/GeneratorBase/HeaderToGenerate.html +123 -0
  216. data/doc/WsdlMapper/SvcGeneration/GeneratorBase/PartToGenerate.html +123 -0
  217. data/doc/WsdlMapper/SvcGeneration/OperationD10rGenerator.html +1327 -0
  218. data/doc/WsdlMapper/SvcGeneration/OperationGenerator.html +1487 -0
  219. data/doc/WsdlMapper/SvcGeneration/OperationGeneratorBase.html +162 -0
  220. data/doc/WsdlMapper/SvcGeneration/OperationS8rGenerator.html +2247 -0
  221. data/doc/WsdlMapper/SvcGeneration/PortGenerator.html +453 -0
  222. data/doc/WsdlMapper/SvcGeneration/ProxyGenerator.html +487 -0
  223. data/doc/WsdlMapper/SvcGeneration/ServiceGenerator.html +437 -0
  224. data/doc/WsdlMapper/SvcGeneration/SvcGenerator.html +2055 -0
  225. data/doc/WsdlMapper/SvcGeneration/TypeToGenerate.html +388 -0
  226. data/doc/WsdlMapper/TypeMapping.html +543 -0
  227. data/doc/WsdlMapper/TypeMapping/Base.html +706 -0
  228. data/doc/WsdlMapper/TypeMapping/DateParts.html +209 -0
  229. data/doc/WsdlMapper/TypeMapping/DateParts/Base.html +265 -0
  230. data/doc/WsdlMapper/TypeMapping/MappingSet.html +770 -0
  231. data/doc/WsdlMapperTesting.html +119 -0
  232. data/doc/WsdlMapperTesting/FakeD10r.html +310 -0
  233. data/doc/WsdlMapperTesting/FakeOperation.html +706 -0
  234. data/doc/WsdlMapperTesting/FakeS8r.html +310 -0
  235. data/doc/WsdlMapperTesting/GenerationTest.html +646 -0
  236. data/doc/WsdlMapperTesting/ImplementationTest.html +221 -0
  237. data/doc/WsdlMapperTesting/Middlewares.html +117 -0
  238. data/doc/WsdlMapperTesting/Middlewares/FakeDispatcher.html +310 -0
  239. data/doc/WsdlMapperTesting/Middlewares/FakeMessageFactory.html +414 -0
  240. data/doc/WsdlMapperTesting/Middlewares/FakeRequestFactory.html +271 -0
  241. data/doc/WsdlMapperTesting/Middlewares/FakeResponseFactory.html +271 -0
  242. data/doc/WsdlMapperTesting/SchemaTest.html +209 -0
  243. data/doc/WsdlMapperTesting/StubConnection.html +547 -0
  244. data/doc/WsdlMapperTesting/Test.html +200 -0
  245. data/doc/WsdlMapperTesting/TestHelper.html +394 -0
  246. data/doc/WsdlMapperTesting/TmpPath.html +364 -0
  247. data/doc/WsdlMapperTesting/Vcr.html +196 -0
  248. data/doc/_index.html +1913 -0
  249. data/doc/class_list.html +58 -0
  250. data/doc/concepts/wrapping_types.md +3 -0
  251. data/doc/css/common.css +1 -0
  252. data/doc/css/full_list.css +57 -0
  253. data/doc/css/style.css +339 -0
  254. data/doc/diag/async_backend.gliffy +1 -0
  255. data/doc/diag/async_backend.png +0 -0
  256. data/doc/diag/simple_http_backend.gliffy +1 -0
  257. data/doc/diag/simple_http_backend.md +1 -0
  258. data/doc/diag/simple_http_backend.png +0 -0
  259. data/doc/file.README.html +151 -0
  260. data/doc/file_list.html +60 -0
  261. data/doc/frames.html +26 -0
  262. data/doc/index.html +151 -0
  263. data/doc/js/app.js +219 -0
  264. data/doc/js/full_list.js +181 -0
  265. data/doc/js/jquery.js +4 -0
  266. data/doc/method_list.html +6561 -0
  267. data/doc/top-level-namespace.html +112 -0
  268. data/examples/blz_service/.gitignore +3 -0
  269. data/examples/blz_service/Gemfile +4 -0
  270. data/examples/blz_service/README.md +11 -0
  271. data/examples/blz_service/blz_service.wsdl +86 -0
  272. data/examples/blz_service/example.rb +28 -0
  273. data/examples/calculator/.gitignore +3 -0
  274. data/examples/calculator/Gemfile +4 -0
  275. data/examples/calculator/README.md +11 -0
  276. data/examples/calculator/calculator.wsdl +196 -0
  277. data/examples/calculator/example.rb +25 -0
  278. data/lib/wsdl-mapper.rb +1 -0
  279. data/lib/wsdl_mapper.rb +4 -0
  280. data/lib/wsdl_mapper/cli/cli.rb +90 -0
  281. data/lib/wsdl_mapper/core_ext/time_duration.rb +112 -0
  282. data/lib/wsdl_mapper/d10r_generation/d10r_generator.rb +195 -0
  283. data/lib/wsdl_mapper/d10r_generation/facade.rb +12 -0
  284. data/lib/wsdl_mapper/deserializers/attr_mapping.rb +21 -0
  285. data/lib/wsdl_mapper/deserializers/class_mapping.rb +122 -0
  286. data/lib/wsdl_mapper/deserializers/deserializer.rb +83 -0
  287. data/lib/wsdl_mapper/deserializers/element_directory.rb +66 -0
  288. data/lib/wsdl_mapper/deserializers/errors.rb +28 -0
  289. data/lib/wsdl_mapper/deserializers/frame.rb +31 -0
  290. data/lib/wsdl_mapper/deserializers/lazy_loading_deserializer.rb +39 -0
  291. data/lib/wsdl_mapper/deserializers/prop_mapping.rb +26 -0
  292. data/lib/wsdl_mapper/deserializers/sax_document.rb +156 -0
  293. data/lib/wsdl_mapper/deserializers/soap_array_mapping.rb +34 -0
  294. data/lib/wsdl_mapper/deserializers/type_directory.rb +39 -0
  295. data/lib/wsdl_mapper/dom/attribute.rb +42 -0
  296. data/lib/wsdl_mapper/dom/bounds.rb +15 -0
  297. data/lib/wsdl_mapper/dom/builder.rb +77 -0
  298. data/lib/wsdl_mapper/dom/builtin_type.rb +17 -0
  299. data/lib/wsdl_mapper/dom/complex_type.rb +63 -0
  300. data/lib/wsdl_mapper/dom/directory.rb +74 -0
  301. data/lib/wsdl_mapper/dom/documentation.rb +16 -0
  302. data/lib/wsdl_mapper/dom/element.rb +15 -0
  303. data/lib/wsdl_mapper/dom/enumeration_value.rb +11 -0
  304. data/lib/wsdl_mapper/dom/name.rb +69 -0
  305. data/lib/wsdl_mapper/dom/namespaces.rb +88 -0
  306. data/lib/wsdl_mapper/dom/property.rb +56 -0
  307. data/lib/wsdl_mapper/dom/schema.rb +120 -0
  308. data/lib/wsdl_mapper/dom/shallow_schema.rb +34 -0
  309. data/lib/wsdl_mapper/dom/simple_type.rb +28 -0
  310. data/lib/wsdl_mapper/dom/soap_encoding_type.rb +13 -0
  311. data/lib/wsdl_mapper/dom/type_base.rb +31 -0
  312. data/lib/wsdl_mapper/dom/validator.rb +36 -0
  313. data/lib/wsdl_mapper/dom_generation/default_class_generator.rb +78 -0
  314. data/lib/wsdl_mapper/dom_generation/default_ctr_generator.rb +99 -0
  315. data/lib/wsdl_mapper/dom_generation/default_enum_generator.rb +59 -0
  316. data/lib/wsdl_mapper/dom_generation/default_value_defaults_generator.rb +52 -0
  317. data/lib/wsdl_mapper/dom_generation/default_value_generator.rb +82 -0
  318. data/lib/wsdl_mapper/dom_generation/default_wrapping_type_generator.rb +44 -0
  319. data/lib/wsdl_mapper/dom_generation/documented_class_generator.rb +58 -0
  320. data/lib/wsdl_mapper/dom_generation/documented_ctr_generator.rb +54 -0
  321. data/lib/wsdl_mapper/dom_generation/documented_enum_generator.rb +30 -0
  322. data/lib/wsdl_mapper/dom_generation/documented_schema_generator.rb +51 -0
  323. data/lib/wsdl_mapper/dom_generation/documented_wrapping_type_generator.rb +17 -0
  324. data/lib/wsdl_mapper/dom_generation/facade.rb +18 -0
  325. data/lib/wsdl_mapper/dom_generation/generator_base.rb +66 -0
  326. data/lib/wsdl_mapper/dom_generation/null_ctr_generator.rb +20 -0
  327. data/lib/wsdl_mapper/dom_generation/schema_generator.rb +134 -0
  328. data/lib/wsdl_mapper/dom_parsing/abstract_resolver.rb +10 -0
  329. data/lib/wsdl_mapper/dom_parsing/annotation_parser.rb +25 -0
  330. data/lib/wsdl_mapper/dom_parsing/attribute_parser.rb +47 -0
  331. data/lib/wsdl_mapper/dom_parsing/complex_type_parser.rb +213 -0
  332. data/lib/wsdl_mapper/dom_parsing/default_resolver.rb +30 -0
  333. data/lib/wsdl_mapper/dom_parsing/element_parser.rb +43 -0
  334. data/lib/wsdl_mapper/dom_parsing/import_parser.rb +31 -0
  335. data/lib/wsdl_mapper/dom_parsing/linker.rb +108 -0
  336. data/lib/wsdl_mapper/dom_parsing/local_file_resolver.rb +19 -0
  337. data/lib/wsdl_mapper/dom_parsing/parser.rb +127 -0
  338. data/lib/wsdl_mapper/dom_parsing/parser_base.rb +41 -0
  339. data/lib/wsdl_mapper/dom_parsing/simple_type_parser.rb +99 -0
  340. data/lib/wsdl_mapper/dom_parsing/url_resolver.rb +16 -0
  341. data/lib/wsdl_mapper/dom_parsing/xsd.rb +47 -0
  342. data/lib/wsdl_mapper/generation/abstract_formatter.rb +115 -0
  343. data/lib/wsdl_mapper/generation/base.rb +69 -0
  344. data/lib/wsdl_mapper/generation/context.rb +35 -0
  345. data/lib/wsdl_mapper/generation/default_formatter.rb +237 -0
  346. data/lib/wsdl_mapper/generation/default_module_generator.rb +32 -0
  347. data/lib/wsdl_mapper/generation/facade.rb +59 -0
  348. data/lib/wsdl_mapper/generation/result.rb +61 -0
  349. data/lib/wsdl_mapper/generation/type_to_generate.rb +12 -0
  350. data/lib/wsdl_mapper/generation/yard_doc_formatter.rb +105 -0
  351. data/lib/wsdl_mapper/naming/abstract_namer.rb +53 -0
  352. data/lib/wsdl_mapper/naming/abstract_service_namer.rb +115 -0
  353. data/lib/wsdl_mapper/naming/default_namer.rb +183 -0
  354. data/lib/wsdl_mapper/naming/default_service_namer.rb +147 -0
  355. data/lib/wsdl_mapper/naming/enumeration_value_name.rb +16 -0
  356. data/lib/wsdl_mapper/naming/inflector.rb +42 -0
  357. data/lib/wsdl_mapper/naming/namer_base.rb +115 -0
  358. data/lib/wsdl_mapper/naming/property_name.rb +16 -0
  359. data/lib/wsdl_mapper/naming/separating_namer.rb +122 -0
  360. data/lib/wsdl_mapper/naming/type_name.rb +77 -0
  361. data/lib/wsdl_mapper/parsing/base.rb +148 -0
  362. data/lib/wsdl_mapper/parsing/logging.rb +33 -0
  363. data/lib/wsdl_mapper/runtime.rb +4 -0
  364. data/lib/wsdl_mapper/runtime/api.rb +42 -0
  365. data/lib/wsdl_mapper/runtime/async_http_backend.rb +72 -0
  366. data/lib/wsdl_mapper/runtime/backend_base.rb +21 -0
  367. data/lib/wsdl_mapper/runtime/body.rb +10 -0
  368. data/lib/wsdl_mapper/runtime/errors.rb +42 -0
  369. data/lib/wsdl_mapper/runtime/header.rb +6 -0
  370. data/lib/wsdl_mapper/runtime/input_s8r.rb +8 -0
  371. data/lib/wsdl_mapper/runtime/message.rb +23 -0
  372. data/lib/wsdl_mapper/runtime/middleware_stack.rb +104 -0
  373. data/lib/wsdl_mapper/runtime/middlewares.rb +19 -0
  374. data/lib/wsdl_mapper/runtime/middlewares/abstract_logger.rb +19 -0
  375. data/lib/wsdl_mapper/runtime/middlewares/async_dispatcher.rb +21 -0
  376. data/lib/wsdl_mapper/runtime/middlewares/async_message_factory.rb +17 -0
  377. data/lib/wsdl_mapper/runtime/middlewares/async_request_factory.rb +17 -0
  378. data/lib/wsdl_mapper/runtime/middlewares/async_request_logger.rb +17 -0
  379. data/lib/wsdl_mapper/runtime/middlewares/async_response_factory.rb +17 -0
  380. data/lib/wsdl_mapper/runtime/middlewares/async_response_logger.rb +17 -0
  381. data/lib/wsdl_mapper/runtime/middlewares/noop.rb +11 -0
  382. data/lib/wsdl_mapper/runtime/middlewares/simple_dispatcher.rb +69 -0
  383. data/lib/wsdl_mapper/runtime/middlewares/simple_message_factory.rb +19 -0
  384. data/lib/wsdl_mapper/runtime/middlewares/simple_request_factory.rb +37 -0
  385. data/lib/wsdl_mapper/runtime/middlewares/simple_request_logger.rb +18 -0
  386. data/lib/wsdl_mapper/runtime/middlewares/simple_response_factory.rb +26 -0
  387. data/lib/wsdl_mapper/runtime/middlewares/simple_response_logger.rb +16 -0
  388. data/lib/wsdl_mapper/runtime/operation.rb +90 -0
  389. data/lib/wsdl_mapper/runtime/output_s8r.rb +9 -0
  390. data/lib/wsdl_mapper/runtime/port.rb +30 -0
  391. data/lib/wsdl_mapper/runtime/proxy.rb +12 -0
  392. data/lib/wsdl_mapper/runtime/request.rb +35 -0
  393. data/lib/wsdl_mapper/runtime/response.rb +27 -0
  394. data/lib/wsdl_mapper/runtime/s8r_base.rb +57 -0
  395. data/lib/wsdl_mapper/runtime/service.rb +25 -0
  396. data/lib/wsdl_mapper/runtime/simple_http_backend.rb +34 -0
  397. data/lib/wsdl_mapper/runtime/simpler_inspect.rb +19 -0
  398. data/lib/wsdl_mapper/s8r_generation/facade.rb +12 -0
  399. data/lib/wsdl_mapper/s8r_generation/s8r_generator.rb +276 -0
  400. data/lib/wsdl_mapper/serializers/abstract_resolver.rb +11 -0
  401. data/lib/wsdl_mapper/serializers/serializer_core.rb +111 -0
  402. data/lib/wsdl_mapper/serializers/serializer_factory.rb +27 -0
  403. data/lib/wsdl_mapper/serializers/type_directory.rb +75 -0
  404. data/lib/wsdl_mapper/svc_desc/envelope.rb +12 -0
  405. data/lib/wsdl_mapper/svc_desc/fault.rb +27 -0
  406. data/lib/wsdl_mapper/svc_desc/soap_element_directory.rb +13 -0
  407. data/lib/wsdl_mapper/svc_desc/soap_type_directory.rb +21 -0
  408. data/lib/wsdl_mapper/svc_desc/wsdl11/base.rb +16 -0
  409. data/lib/wsdl_mapper/svc_desc/wsdl11/binding.rb +148 -0
  410. data/lib/wsdl_mapper/svc_desc/wsdl11/description.rb +86 -0
  411. data/lib/wsdl_mapper/svc_desc/wsdl11/message.rb +32 -0
  412. data/lib/wsdl_mapper/svc_desc/wsdl11/port_type.rb +63 -0
  413. data/lib/wsdl_mapper/svc_desc/wsdl11/service.rb +27 -0
  414. data/lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb +198 -0
  415. data/lib/wsdl_mapper/svc_desc_parsing/http.rb +14 -0
  416. data/lib/wsdl_mapper/svc_desc_parsing/linker.rb +126 -0
  417. data/lib/wsdl_mapper/svc_desc_parsing/message_parser.rb +42 -0
  418. data/lib/wsdl_mapper/svc_desc_parsing/parser.rb +94 -0
  419. data/lib/wsdl_mapper/svc_desc_parsing/parser_base.rb +24 -0
  420. data/lib/wsdl_mapper/svc_desc_parsing/port_type_parser.rb +101 -0
  421. data/lib/wsdl_mapper/svc_desc_parsing/service_parser.rb +66 -0
  422. data/lib/wsdl_mapper/svc_desc_parsing/soap.rb +18 -0
  423. data/lib/wsdl_mapper/svc_desc_parsing/soap12.rb +18 -0
  424. data/lib/wsdl_mapper/svc_desc_parsing/soap_enc.rb +13 -0
  425. data/lib/wsdl_mapper/svc_desc_parsing/soap_http.rb +11 -0
  426. data/lib/wsdl_mapper/svc_desc_parsing/types_parser.rb +31 -0
  427. data/lib/wsdl_mapper/svc_desc_parsing/wsdl11.rb +27 -0
  428. data/lib/wsdl_mapper/svc_generation/documented_operation_generator.rb +104 -0
  429. data/lib/wsdl_mapper/svc_generation/documented_port_generator.rb +19 -0
  430. data/lib/wsdl_mapper/svc_generation/documented_proxy_generator.rb +36 -0
  431. data/lib/wsdl_mapper/svc_generation/documented_service_generator.rb +20 -0
  432. data/lib/wsdl_mapper/svc_generation/documented_svc_generator.rb +38 -0
  433. data/lib/wsdl_mapper/svc_generation/facade.rb +78 -0
  434. data/lib/wsdl_mapper/svc_generation/generator_base.rb +111 -0
  435. data/lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb +171 -0
  436. data/lib/wsdl_mapper/svc_generation/operation_generator.rb +217 -0
  437. data/lib/wsdl_mapper/svc_generation/operation_generator_base.rb +8 -0
  438. data/lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb +260 -0
  439. data/lib/wsdl_mapper/svc_generation/port_generator.rb +56 -0
  440. data/lib/wsdl_mapper/svc_generation/proxy_generator.rb +51 -0
  441. data/lib/wsdl_mapper/svc_generation/service_generator.rb +49 -0
  442. data/lib/wsdl_mapper/svc_generation/svc_generator.rb +172 -0
  443. data/lib/wsdl_mapper/svc_generation/type_to_generate.rb +6 -0
  444. data/lib/wsdl_mapper/type_mapping.rb +21 -0
  445. data/lib/wsdl_mapper/type_mapping/base.rb +48 -0
  446. data/lib/wsdl_mapper/type_mapping/base64_binary.rb +31 -0
  447. data/lib/wsdl_mapper/type_mapping/boolean.rb +31 -0
  448. data/lib/wsdl_mapper/type_mapping/date.rb +28 -0
  449. data/lib/wsdl_mapper/type_mapping/date_parts.rb +92 -0
  450. data/lib/wsdl_mapper/type_mapping/date_time.rb +28 -0
  451. data/lib/wsdl_mapper/type_mapping/decimal.rb +30 -0
  452. data/lib/wsdl_mapper/type_mapping/duration.rb +115 -0
  453. data/lib/wsdl_mapper/type_mapping/float.rb +30 -0
  454. data/lib/wsdl_mapper/type_mapping/hex_binary.rb +30 -0
  455. data/lib/wsdl_mapper/type_mapping/integer.rb +36 -0
  456. data/lib/wsdl_mapper/type_mapping/mapping_set.rb +64 -0
  457. data/lib/wsdl_mapper/type_mapping/string.rb +38 -0
  458. data/lib/wsdl_mapper/type_mapping/time.rb +29 -0
  459. data/lib/wsdl_mapper/type_mapping/uri.rb +35 -0
  460. data/lib/wsdl_mapper/version.rb +3 -0
  461. data/lib/wsdl_mapper_testing/fake_d10r.rb +15 -0
  462. data/lib/wsdl_mapper_testing/fake_operation.rb +33 -0
  463. data/lib/wsdl_mapper_testing/fake_s8r.rb +15 -0
  464. data/lib/wsdl_mapper_testing/generation_test.rb +47 -0
  465. data/lib/wsdl_mapper_testing/implementation_test.rb +17 -0
  466. data/lib/wsdl_mapper_testing/middlewares/fake_dispatcher.rb +17 -0
  467. data/lib/wsdl_mapper_testing/middlewares/fake_message_factory.rb +23 -0
  468. data/lib/wsdl_mapper_testing/middlewares/fake_request_factory.rb +20 -0
  469. data/lib/wsdl_mapper_testing/middlewares/fake_response_factory.rb +20 -0
  470. data/lib/wsdl_mapper_testing/schema_test.rb +9 -0
  471. data/lib/wsdl_mapper_testing/stub_connection.rb +52 -0
  472. data/lib/wsdl_mapper_testing/test.rb +9 -0
  473. data/lib/wsdl_mapper_testing/test_helper.rb +29 -0
  474. data/lib/wsdl_mapper_testing/tmp_path.rb +20 -0
  475. data/lib/wsdl_mapper_testing/vcr.rb +19 -0
  476. data/test/compatibility/dom_compatibility_test.rb +56 -0
  477. data/test/compatibility/svc_compatibility_test.rb +47 -0
  478. data/test/fixtures/address_type_enumeration.xsd +9 -0
  479. data/test/fixtures/address_type_enumeration_with_documentation.xsd +16 -0
  480. data/test/fixtures/address_type_enumeration_with_value_documentation.xsd +21 -0
  481. data/test/fixtures/attachment_type_for_import.xsd +9 -0
  482. data/test/fixtures/basic_credentials_type.xsd +9 -0
  483. data/test/fixtures/basic_note_inline_type.xsd +13 -0
  484. data/test/fixtures/basic_note_type.xsd +11 -0
  485. data/test/fixtures/basic_note_type_and_fancy_note_type_extension.xsd +21 -0
  486. data/test/fixtures/basic_note_type_and_fancy_note_type_extension_with_namespace.xsd +21 -0
  487. data/test/fixtures/basic_note_type_with_an_invalid_root_node.xsd +11 -0
  488. data/test/fixtures/basic_note_type_with_attachments.xsd +12 -0
  489. data/test/fixtures/basic_note_type_with_attachments_simple_type.xsd +16 -0
  490. data/test/fixtures/basic_note_type_with_attribute.xsd +12 -0
  491. data/test/fixtures/basic_note_type_with_boolean_property.xsd +12 -0
  492. data/test/fixtures/basic_note_type_with_boolean_property_and_documentation.xsd +24 -0
  493. data/test/fixtures/basic_note_type_with_complex_attachments.xsd +22 -0
  494. data/test/fixtures/basic_note_type_with_date.xsd +12 -0
  495. data/test/fixtures/basic_note_type_with_defaults.xsd +12 -0
  496. data/test/fixtures/basic_note_type_with_documentation_and_bounds.xsd +19 -0
  497. data/test/fixtures/basic_note_type_with_element.xsd +12 -0
  498. data/test/fixtures/basic_note_type_with_element_inline_complex_type.xsd +13 -0
  499. data/test/fixtures/basic_note_type_with_import.xsd +13 -0
  500. data/test/fixtures/basic_note_type_with_inline_complex_type.xsd +20 -0
  501. data/test/fixtures/basic_note_type_with_inline_simple_type.xsd +17 -0
  502. data/test/fixtures/basic_note_type_with_invalid_xsd_namespace.xsd +11 -0
  503. data/test/fixtures/basic_note_type_with_missing_xsd_namespace.xsd +11 -0
  504. data/test/fixtures/basic_note_type_with_property_and_attribute.xsd +15 -0
  505. data/test/fixtures/basic_note_type_with_property_and_attribute_documentation.xsd +30 -0
  506. data/test/fixtures/basic_note_type_with_ref_attribute.xsd +13 -0
  507. data/test/fixtures/basic_note_type_with_referenced_simple_email_address_type.xsd +15 -0
  508. data/test/fixtures/basic_note_type_with_soap_array.xsd +26 -0
  509. data/test/fixtures/basic_note_type_with_soap_array_builtin.xsd +20 -0
  510. data/test/fixtures/basic_note_type_with_soap_array_simple.xsd +25 -0
  511. data/test/fixtures/basic_note_type_with_target_namespace.xsd +11 -0
  512. data/test/fixtures/basic_order_type_with_referenced_address_type_enum.xsd +17 -0
  513. data/test/fixtures/basic_order_type_with_required_address_type_enum.xsd +17 -0
  514. data/test/fixtures/element_inline_simple_type.xsd +8 -0
  515. data/test/fixtures/empty_note_type.xsd +8 -0
  516. data/test/fixtures/empty_note_type_with_multiline_documentation.xsd +13 -0
  517. data/test/fixtures/empty_note_type_with_target_namespace.xsd +7 -0
  518. data/test/fixtures/empty_note_with_documentaion_and_target_namespace.xsd +12 -0
  519. data/test/fixtures/ms_cust_order_example.xsd +77 -0
  520. data/test/fixtures/services/cdiscount.wsdl +4034 -0
  521. data/test/fixtures/services/ebaySvc.wsdl +144554 -0
  522. data/test/fixtures/services/ebaySvc.xsd +140654 -0
  523. data/test/fixtures/services/magento_v2.wsdl +5477 -0
  524. data/test/fixtures/services/magento_v2.xsd +2152 -0
  525. data/test/fixtures/services/plenty_114.wsdl +11954 -0
  526. data/test/fixtures/services/plenty_114.xsd +7948 -0
  527. data/test/fixtures/services/tb-cat_1_2_import.xsd +1769 -0
  528. data/test/fixtures/services/tb-stock_all_in_one.xsd +936 -0
  529. data/test/fixtures/simple_email_address_type.xsd +6 -0
  530. data/test/fixtures/simple_email_address_type_with_documentation.xsd +11 -0
  531. data/test/fixtures/simple_money_type_with_currency_attribute.xsd +10 -0
  532. data/test/fixtures/super_fancy_note_type.xsd +31 -0
  533. data/test/fixtures/w3_example.xsd +15 -0
  534. data/test/fixtures/wsdls/price_service.wsdl +88 -0
  535. data/test/fixtures/wsdls/price_service_doc_encoded.wsdl +87 -0
  536. data/test/fixtures/wsdls/price_service_doc_literal.wsdl +89 -0
  537. data/test/fixtures/wsdls/price_service_doc_literal2.wsdl +88 -0
  538. data/test/fixtures/wsdls/price_service_doc_literal_type.wsdl +84 -0
  539. data/test/fixtures/wsdls/price_service_rpc_encoded.wsdl +85 -0
  540. data/test/fixtures/wsdls/price_service_rpc_encoded2.wsdl +86 -0
  541. data/test/fixtures/wsdls/price_service_rpc_literal.wsdl +88 -0
  542. data/test/fixtures/wsdls/price_service_rpc_literal2.wsdl +86 -0
  543. data/test/fixtures/wsdls/simple_service.wsdl +93 -0
  544. data/test/fixtures/wsdls/simple_service_with_overload.wsdl +123 -0
  545. data/test/fixtures/wsdls/w3_example.wsdl +64 -0
  546. data/test/test_helper.rb +29 -0
  547. data/test/wsdl_mapper/cli/cli_test.rb +10 -0
  548. data/test/wsdl_mapper/core_ext/time_duration_test.rb +82 -0
  549. data/test/wsdl_mapper/d10r_generation/d10r_generator_test.rb +227 -0
  550. data/test/wsdl_mapper/deserializers/benchmark_test.rb +906 -0
  551. data/test/wsdl_mapper/deserializers/deserializer_integration_test.rb +115 -0
  552. data/test/wsdl_mapper/deserializers/deserializer_test.rb +343 -0
  553. data/test/wsdl_mapper/deserializers/deserializer_with_ns_test.rb +188 -0
  554. data/test/wsdl_mapper/deserializers/operation_deserializer_test.rb +342 -0
  555. data/test/wsdl_mapper/dom/builtin_type_test.rb +25 -0
  556. data/test/wsdl_mapper/dom/enumeration_value_test.rb +14 -0
  557. data/test/wsdl_mapper/dom/name_test.rb +31 -0
  558. data/test/wsdl_mapper/dom/namespaces_test.rb +96 -0
  559. data/test/wsdl_mapper/dom/simple_type_test.rb +26 -0
  560. data/test/wsdl_mapper/dom/validator_test.rb +30 -0
  561. data/test/wsdl_mapper/dom_generation/default_class_generator_test.rb +213 -0
  562. data/test/wsdl_mapper/dom_generation/default_ctr_generator_test.rb +166 -0
  563. data/test/wsdl_mapper/dom_generation/default_enum_generator_test.rb +35 -0
  564. data/test/wsdl_mapper/dom_generation/default_value_generator_test.rb +72 -0
  565. data/test/wsdl_mapper/dom_generation/default_wrapping_type_generator_test.rb +65 -0
  566. data/test/wsdl_mapper/dom_generation/documented_class_generator_test.rb +151 -0
  567. data/test/wsdl_mapper/dom_generation/documented_ctr_generator_test.rb +84 -0
  568. data/test/wsdl_mapper/dom_generation/documented_enum_generator_test.rb +66 -0
  569. data/test/wsdl_mapper/dom_generation/documented_schema_generator_test.rb +73 -0
  570. data/test/wsdl_mapper/dom_generation/documented_wrapping_type_generator_test.rb +34 -0
  571. data/test/wsdl_mapper/dom_generation/schema_generator_test.rb +53 -0
  572. data/test/wsdl_mapper/dom_parsing/parser_test.rb +300 -0
  573. data/test/wsdl_mapper/generation/default_formatter_test.rb +104 -0
  574. data/test/wsdl_mapper/naming/default_namer_test.rb +127 -0
  575. data/test/wsdl_mapper/naming/default_service_namer_test.rb +15 -0
  576. data/test/wsdl_mapper/naming/inflector_test.rb +37 -0
  577. data/test/wsdl_mapper/naming/separating_namer_test.rb +53 -0
  578. data/test/wsdl_mapper/naming/type_name_test.rb +50 -0
  579. data/test/wsdl_mapper/runtime/async_http_backend_test.rb +57 -0
  580. data/test/wsdl_mapper/runtime/middleware_stack_test.rb +130 -0
  581. data/test/wsdl_mapper/runtime/middlewares/simple_dispatcher_test.rb +45 -0
  582. data/test/wsdl_mapper/runtime/operation_test.rb +79 -0
  583. data/test/wsdl_mapper/runtime/simple_http_backend_test.rb +49 -0
  584. data/test/wsdl_mapper/s8r_generation/s8r_generator_test.rb +450 -0
  585. data/test/wsdl_mapper/serializers/serializer_core_test.rb +293 -0
  586. data/test/wsdl_mapper/serializers/serializer_factory_test.rb +46 -0
  587. data/test/wsdl_mapper/serializers/type_directory_test.rb +31 -0
  588. data/test/wsdl_mapper/svc_desc_parsing/parser_test.rb +269 -0
  589. data/test/wsdl_mapper/svc_generation/documented_operation_generator_test.rb +226 -0
  590. data/test/wsdl_mapper/svc_generation/documented_port_generator_test.rb +46 -0
  591. data/test/wsdl_mapper/svc_generation/documented_service_generator_test.rb +42 -0
  592. data/test/wsdl_mapper/svc_generation/documented_svc_generator_test.rb +41 -0
  593. data/test/wsdl_mapper/svc_generation/operation_d10r_generator_test.rb +134 -0
  594. data/test/wsdl_mapper/svc_generation/operation_generator_test.rb +261 -0
  595. data/test/wsdl_mapper/svc_generation/operation_s8r_generator_test.rb +165 -0
  596. data/test/wsdl_mapper/svc_generation/port_generator_test.rb +43 -0
  597. data/test/wsdl_mapper/svc_generation/proxy_generator_test.rb +40 -0
  598. data/test/wsdl_mapper/svc_generation/service_generator_test.rb +38 -0
  599. data/test/wsdl_mapper/svc_generation/svc_generator_test.rb +38 -0
  600. data/test/wsdl_mapper/type_mapping/base64_binary_test.rb +27 -0
  601. data/test/wsdl_mapper/type_mapping/base_test.rb +37 -0
  602. data/test/wsdl_mapper/type_mapping/boolean_test.rb +25 -0
  603. data/test/wsdl_mapper/type_mapping/date_parts_test.rb +81 -0
  604. data/test/wsdl_mapper/type_mapping/date_test.rb +23 -0
  605. data/test/wsdl_mapper/type_mapping/date_time_test.rb +23 -0
  606. data/test/wsdl_mapper/type_mapping/decimal_test.rb +21 -0
  607. data/test/wsdl_mapper/type_mapping/duration_test.rb +34 -0
  608. data/test/wsdl_mapper/type_mapping/float_test.rb +27 -0
  609. data/test/wsdl_mapper/type_mapping/hex_binary_test.rb +27 -0
  610. data/test/wsdl_mapper/type_mapping/integer_test.rb +36 -0
  611. data/test/wsdl_mapper/type_mapping/string_test.rb +24 -0
  612. data/test/wsdl_mapper/type_mapping/time_test.rb +29 -0
  613. data/test/wsdl_mapper/type_mapping/uri_test.rb +28 -0
  614. data/test/wsdl_mapper/type_mapping_test.rb +70 -0
  615. data/test/wsdl_mapper_testing/stub_connection_test.rb +55 -0
  616. data/wsdl-mapper.gemspec +39 -0
  617. metadata +1038 -0
@@ -0,0 +1,18 @@
1
+ require 'wsdl_mapper/runtime/middlewares/abstract_logger'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ module Middlewares
6
+ class SimpleRequestLogger < AbstractLogger
7
+ def call(operation, request)
8
+ log "Request for #{operation.name}"
9
+ log "POST #{request.url}"
10
+ log "SOAP-Action: #{request.message.action}"
11
+ log request.xml
12
+
13
+ [operation, request]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ require 'wsdl_mapper/runtime/response'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ module Middlewares
6
+ class SimpleResponseFactory
7
+ # Deserializes the `http_response` body. It relies on {WsdlMapper::Runtime::Operation#output_d10r} to return the proper output
8
+ # deserializer for this operation.
9
+ # @param [WsdlMapper::Runtime::Operation] operation
10
+ # @param [Faraday::Response] http_response
11
+ # @return [Array<WsdlMapper::Runtime::Operation, WsdlMapper::Runtime::Response>]
12
+ def call(operation, http_response)
13
+ response = WsdlMapper::Runtime::Response.new http_response.status, http_response.body, http_response.headers
14
+ deserialize_envelope operation, response
15
+
16
+ [operation, response]
17
+ end
18
+
19
+ protected
20
+ def deserialize_envelope(operation, response)
21
+ response.envelope = operation.output_d10r.from_xml response.body
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ require 'wsdl_mapper/runtime/middlewares/abstract_logger'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ module Middlewares
6
+ class SimpleResponseLogger < AbstractLogger
7
+ def call(operation, response)
8
+ log "Response for #{operation.name}"
9
+ log response.body
10
+
11
+ [operation, response]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,90 @@
1
+ require 'wsdl_mapper/svc_desc/envelope'
2
+ require 'wsdl_mapper/runtime/message'
3
+
4
+ module WsdlMapper
5
+ module Runtime
6
+ # @abstract
7
+ # noinspection RubyUnusedLocalVariable
8
+ class Operation
9
+ attr_reader :name, :operation_name
10
+
11
+ # @param [WsdlMapper::Runtime::Api] api
12
+ # @param [WsdlMapper::Runtime::Service] service
13
+ # @param [WsdlMapper::Runtime::Port] port
14
+ def initialize(api, service, port)
15
+ @api = api
16
+ @service = service
17
+ @port = port
18
+ @soap_action = nil
19
+ @name = nil
20
+ @operation_name = nil
21
+ @requires = []
22
+ @loaded = false
23
+ end
24
+
25
+ # @abstract
26
+ # @param [Hash<Symbol, Object>] header Keyword arguments for the corresponding input message header
27
+ # @param [Hash<Symbol, Object>] body Keyword arguments for the corresponding input message body
28
+ def new_input(header: {}, body: {})
29
+ load_requires
30
+ nil
31
+ end
32
+
33
+ # @abstract
34
+ # @param [Hash<Symbol, Object>] header Keyword arguments for the corresponding output message header
35
+ # @param [Hash<Symbol, Object>] body Keyword arguments for the corresponding output message body
36
+ def new_output(header: {}, body: {})
37
+ load_requires
38
+ nil
39
+ end
40
+
41
+ # @return [WsdlMapper::SvcDesc::Envelope]
42
+ # @param [WsdlMapper::Runtime::Header] header
43
+ # @param [WsdlMapper::Runtime::Body] body
44
+ def new_envelope(header, body)
45
+ WsdlMapper::SvcDesc::Envelope.new(header: header, body: body)
46
+ end
47
+
48
+ # @param [WsdlMapper::Runtime::Header] header
49
+ # @param [WsdlMapper::Runtime::Body] body
50
+ # @return [WsdlMapper::Runtime::Message]
51
+ def new_message(header, body)
52
+ Message.new(@port._soap_address, @soap_action, new_envelope(header, body))
53
+ end
54
+
55
+ # @abstract
56
+ # @return [WsdlMapper::Runtime::InputS8r] The serializer for this operations input message
57
+ def input_s8r
58
+ load_requires
59
+ end
60
+
61
+ # @abstract
62
+ # @return [WsdlMapper::Runtime::OutputS8r] The serializer for this operations output message
63
+ def output_s8r
64
+ load_requires
65
+ end
66
+
67
+ # @abstract
68
+ # @return [WsdlMapper::Runtime::InputD10r] The deserializer for this operations input message
69
+ def input_d10r
70
+ load_requires
71
+ end
72
+
73
+ # @abstract
74
+ # @return [WsdlMapper::Runtime::OutputD10r] The deserializer for this operations output message
75
+ def output_d10r
76
+ load_requires
77
+ end
78
+
79
+ # Dynamically loads the required classes (API types and serializers)
80
+ def load_requires
81
+ return if @loaded
82
+
83
+ @requires.each do |req|
84
+ require req
85
+ end
86
+ @loaded = true
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,9 @@
1
+ require 'wsdl_mapper/runtime/s8r_base'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ class OutputS8r < S8rBase
6
+ end
7
+ end
8
+ end
9
+
@@ -0,0 +1,30 @@
1
+ require 'wsdl_mapper/runtime/simpler_inspect'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ class Port
6
+ include SimplerInspect
7
+
8
+ attr_reader :_soap_address, :_operations
9
+
10
+ # @!attribute _operations
11
+ # @return [Array<WsdlMapper::Runtime::Operation>] All operations contained in this port
12
+ # @!attribute _soap_address
13
+ # @return [String] URL of the SOAP service
14
+
15
+ # @param [WsdlMapper::Runtime::Api] api The API this port belongs to
16
+ # @param [WsdlMapper::Runtime::Service] service The service this port belongs to
17
+ def initialize(api, service)
18
+ @_api = api
19
+ @_service = service
20
+ @_soap_address = nil
21
+ @_operations = []
22
+ end
23
+
24
+ # Force preloading of requires for all contained operations
25
+ def _load_requires
26
+ @_operations.each(&:load_requires)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,12 @@
1
+ module WsdlMapper
2
+ module Runtime
3
+ class Proxy
4
+ # @param [WsdlMapper::Runtime::Api] api
5
+ # @param [WsdlMapper::Runtime::Port] port
6
+ def initialize(api, port)
7
+ @_api = api
8
+ @_port = port
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,35 @@
1
+ module WsdlMapper
2
+ module Runtime
3
+ class Request
4
+ attr_reader :message, :http_headers
5
+ attr_accessor :url, :xml
6
+
7
+ # @!attribute message
8
+ # @return [WsdlMapper::Runtime::Message] The message to send
9
+ # @!attribute http_headers
10
+ # @return [Hash] A hash of HTTP headers to set
11
+ # @!attribute url
12
+ # @return [String] URL of the SOAP service
13
+ # @!attribute xml
14
+ # @return [String] The serialized `message`
15
+
16
+ # @param [WsdlMapper::Runtime::Message] message
17
+ def initialize(message)
18
+ @message = message
19
+ @http_headers = {}
20
+ end
21
+
22
+ # Adds an HTTP header to the request
23
+ # @param [String] key
24
+ # @param [String] value
25
+ def add_http_header(key, value)
26
+ @http_headers[key] = value
27
+ end
28
+
29
+ # @return [true, false]
30
+ def https?
31
+ @url.scheme == 'https'
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ module WsdlMapper
2
+ module Runtime
3
+ class Response
4
+ attr_reader :status, :body, :http_headers
5
+ attr_accessor :envelope
6
+
7
+ # @!attribute status
8
+ # @return [Fixnum]
9
+ # @!attribute body
10
+ # @return [String]
11
+ # @!attribute http_headers
12
+ # @return [Hash]
13
+ # @!attribute envelope
14
+ # @return [WsdlMapper::SvcDesc::Envelope] The deserialized body
15
+
16
+ # @param [Fixnum] status HTTP response code
17
+ # @param [String] body HTTP response body
18
+ # @param [Hash] http_headers HTTP response headers
19
+ def initialize(status, body, http_headers)
20
+ @status = status
21
+ @body = body
22
+ @http_headers = http_headers
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,57 @@
1
+ require 'wsdl_mapper/serializers/serializer_core'
2
+ require 'nokogiri/xml/node/save_options'
3
+
4
+ module WsdlMapper
5
+ module Runtime
6
+ class S8rBase
7
+ # @param [WsdlMapper::Serializers::TypeDirectory] type_directory
8
+ # @param [String] default_namespace Specify a `default_namespace` to skip namespace prefixes
9
+ def initialize(type_directory, default_namespace = nil)
10
+ @type_directory = type_directory
11
+ @default_namespace = default_namespace
12
+ end
13
+
14
+ # Serializes the `envelope` and returns an XML string
15
+ # @param [WsdlMapper::SvcDesc::Envelope] envelope
16
+ # @return [String] `envelope` serialized as XML
17
+ def to_xml(envelope)
18
+ to_doc(envelope).to_xml save_with: Nokogiri::XML::Node::SaveOptions::NO_DECLARATION
19
+ end
20
+
21
+ # Serializes the `envelope` and returns a {Nokogiri::XML::Document}
22
+ # @param [WsdlMapper::SvcDesc::Envelope] envelope
23
+ # @return [Nokogiri::XML::Document] XML document containing the encoded `envelope`
24
+ def to_doc(envelope)
25
+ core = WsdlMapper::Serializers::SerializerCore.new resolver: @type_directory, default_namespace: @default_namespace
26
+ build core, envelope
27
+ core.to_doc
28
+ end
29
+
30
+ # Serializes the `envelope` using `x`
31
+ # @param [WsdlMapper::Serializers::SerializerCore] x Serializer instance to use
32
+ # @param [WsdlMapper::SvcDesc::Envelope] envelope
33
+ def build(x, envelope)
34
+ x.complex(nil, ['http://schemas.xmlsoap.org/soap/envelope/', 'Envelope'], []) do |x|
35
+ build_header(x, envelope.header)
36
+ build_body(x, envelope.body)
37
+ end
38
+ end
39
+
40
+ # @abstract
41
+ # @param [WsdlMapper::Serializers::SerializerCore] x Serializer instance to use
42
+ # @param [WsdlMapper::Runtime::Header] header
43
+ # noinspection RubyUnusedLocalVariable
44
+ def build_header(x, header)
45
+ raise NotImplementedError
46
+ end
47
+
48
+ # @abstract
49
+ # @param [WsdlMapper::Serializers::SerializerCore] x Serializer instance to use
50
+ # @param [WsdlMapper::Runtime::Body] body
51
+ # noinspection RubyUnusedLocalVariable
52
+ def build_body(x, body)
53
+ raise NotImplementedError
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,25 @@
1
+ require 'wsdl_mapper/runtime/simpler_inspect'
2
+
3
+ module WsdlMapper
4
+ module Runtime
5
+ class Service
6
+ include SimplerInspect
7
+
8
+ attr_reader :_ports
9
+
10
+ # @!attribute _ports
11
+ # @return [Array<WsdlMapper::Runtime::Port>] All ports contained in this service
12
+
13
+ # @param [WsdlMapper::Runtime::Api] api
14
+ def initialize(api)
15
+ @_api = api
16
+ @_ports = []
17
+ end
18
+
19
+ # Force preloading of requires for all contained ports
20
+ def _load_requires
21
+ @_ports.each(&:_load_requires)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,34 @@
1
+ require 'faraday'
2
+
3
+ require 'wsdl_mapper/runtime/backend_base'
4
+
5
+ require 'wsdl_mapper/runtime/middlewares/simple_message_factory'
6
+ require 'wsdl_mapper/runtime/middlewares/simple_request_factory'
7
+ require 'wsdl_mapper/runtime/middlewares/simple_dispatcher'
8
+ require 'wsdl_mapper/runtime/middlewares/simple_response_factory'
9
+
10
+ module WsdlMapper
11
+ module Runtime
12
+ # ## Middleware Stack
13
+ # ### Default Configuration
14
+ # The default stack is composed of the following middlewares:
15
+ # ![Diagram](/docs/file/doc/diag/simple_http_backend.png)
16
+ # 1. `message.factory`: {WsdlMapper::Runtime::Middlewares::SimpleMessageFactory}
17
+ # 2. `request.factory`: {WsdlMapper::Runtime::Middlewares::SimpleRequestFactory}
18
+ # 3. `dispatcher`: {WsdlMapper::Runtime::Middlewares::SimpleDispatcher}
19
+ # 4. `response.factory`: {WsdlMapper::Runtime::Middlewares::SimpleResponseFactory}
20
+ #
21
+ # ## Customization
22
+ class SimpleHttpBackend < BackendBase
23
+ include WsdlMapper::Runtime::Middlewares
24
+
25
+ def initialize(connection: Faraday.new)
26
+ super()
27
+ stack.add 'message.factory', SimpleMessageFactory.new
28
+ stack.add 'request.factory', SimpleRequestFactory.new
29
+ stack.add 'dispatcher', SimpleDispatcher.new(connection)
30
+ stack.add 'response.factory', SimpleResponseFactory.new
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,19 @@
1
+ module WsdlMapper
2
+ module Runtime
3
+ # This module contains a non-recursive implementation of {#inspect} to prevent
4
+ # pollution of an `irb` console with 20000 lines of inspect
5
+ module SimplerInspect
6
+ def inspect
7
+ vars = instance_variables.map do |iv|
8
+ next if iv.to_s[0, 2] == '@_'
9
+
10
+ val = instance_variable_get iv
11
+ "#{iv}: #{val}"
12
+ end
13
+ vars = vars.compact * ', '
14
+
15
+ "#<#{self.class.name} #{vars}>"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require 'wsdl_mapper/generation/facade'
2
+ require 'wsdl_mapper/s8r_generation/s8r_generator'
3
+
4
+ module WsdlMapper
5
+ module S8rGeneration
6
+ class Facade < WsdlMapper::Generation::Facade
7
+ def generator_class
8
+ WsdlMapper::S8rGeneration::S8rGenerator
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,276 @@
1
+ require 'wsdl_mapper/naming/default_namer'
2
+ require 'wsdl_mapper/generation/result'
3
+ require 'wsdl_mapper/generation/default_formatter'
4
+ require 'wsdl_mapper/generation/type_to_generate'
5
+ require 'wsdl_mapper/generation/default_module_generator'
6
+ require 'wsdl_mapper/dom/complex_type'
7
+ require 'wsdl_mapper/dom/simple_type'
8
+ require 'wsdl_mapper/generation/base'
9
+
10
+ module WsdlMapper
11
+ module S8rGeneration
12
+ class S8rGenerator < ::WsdlMapper::Generation::Base
13
+ include WsdlMapper::Generation
14
+
15
+ attr_reader :context
16
+
17
+ def initialize(context,
18
+ skip_modules: false,
19
+ namer: WsdlMapper::Naming::DefaultNamer.new,
20
+ formatter_factory: DefaultFormatter,
21
+ module_generator_factory: DefaultModuleGenerator)
22
+
23
+ super(context)
24
+
25
+ @namer = namer
26
+ @formatter_factory = formatter_factory
27
+ @module_generator = module_generator_factory.new self
28
+ @type_directory_name = namer.get_s8r_type_directory_name
29
+ @serializer_name = namer.get_global_s8r_name
30
+ @skip_modules = skip_modules
31
+ end
32
+
33
+ def generate(schema)
34
+ result = Result.new schema: schema
35
+
36
+ generate_type_directory schema, result
37
+ generate_serializer_factory schema, result
38
+
39
+ schema.each_type do |type|
40
+ generate_type type, result
41
+ end
42
+
43
+ unless @skip_modules
44
+ result.module_tree.each do |module_node|
45
+ @module_generator.generate module_node, result
46
+ end
47
+ end
48
+
49
+ result
50
+ end
51
+
52
+ protected
53
+ def generate_serializer_factory(schema, result)
54
+ modules = get_module_names @serializer_name
55
+
56
+ file_for @serializer_name, result do |f|
57
+ f.requires 'wsdl_mapper/serializers/serializer_factory',
58
+ @type_directory_name.require_path
59
+
60
+ f.in_modules modules do
61
+ args = [@type_directory_name.name]
62
+ args << "default_namespace: #{schema.target_namespace.inspect}" if schema.target_namespace
63
+ f.assignment @serializer_name.class_name, "::WsdlMapper::Serializers::SerializerFactory.new(#{args * ', '})"
64
+ end
65
+ end
66
+ end
67
+
68
+ def generate_type_directory(schema, result)
69
+ modules = get_module_names @type_directory_name
70
+
71
+ file_for @type_directory_name, result do |f|
72
+ f.requires 'wsdl_mapper/serializers/type_directory'
73
+
74
+ f.in_modules modules do
75
+ f.block_assignment @type_directory_name.class_name, '::WsdlMapper::Serializers::TypeDirectory.new', [] do
76
+ schema.each_type do |type|
77
+ generate_type_directory_entry f, type, result
78
+ end
79
+ schema.each_element do |element|
80
+ generate_element_entry f, element, result
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ def generate_element_entry(f, element, _result)
88
+ type_name = @namer.get_type_name get_type_name element.type
89
+ type_class_name = type_name.name.inspect
90
+
91
+ f.call :register_element, type_class_name, generate_name(element.name)
92
+ end
93
+
94
+ def generate_type_directory_entry(f, type, _result)
95
+ type_name = @namer.get_type_name get_type_name type
96
+ s8r_name = @namer.get_s8r_name get_type_name type
97
+ type_class_name = type_name.name.inspect
98
+ require_path = s8r_name.require_path.inspect
99
+ s8r_class_name = s8r_name.name.inspect
100
+
101
+ f.call :register_type, type_class_name, require_path, s8r_class_name
102
+ end
103
+
104
+ def generate_type(type, result)
105
+ name = @namer.get_s8r_name get_type_name type
106
+ modules = get_module_names name
107
+
108
+ type_file_for name, result do |f|
109
+ ttg = TypeToGenerate.new type, name
110
+ f.requires @type_directory_name.require_path
111
+
112
+ f.in_modules modules do
113
+ f.in_class ttg.name.class_name do
114
+ def_build_method f, ttg
115
+ end
116
+ end
117
+
118
+ f.call "#{@type_directory_name.name}.register_serializer", name.name.inspect, "#{name.name}.new"
119
+ end
120
+ end
121
+
122
+ def def_simple_build_method_body(f, ttg)
123
+ type_name = generate_name ttg.type.name
124
+ f.block "x.simple(#{type_name}, name)", ['x'] do
125
+ root_type = ttg.type.root.name.name
126
+ f.call 'x.text_builtin', 'obj', root_type.inspect
127
+ end
128
+ end
129
+
130
+ def def_complex_build_method_body(f, ttg)
131
+ f.literal_array 'attributes', collect_attributes(ttg)
132
+ type_name = generate_name ttg.type.name
133
+ f.block "x.complex(#{type_name}, name, attributes)", ['x'] do
134
+ if ttg.type.simple_content?
135
+ write_content_statement f, ttg
136
+ elsif ttg.type.soap_array?
137
+ write_soap_array_statements f, ttg
138
+ else
139
+ write_property_statements f, ttg
140
+ end
141
+ end
142
+ end
143
+
144
+ def write_content_statement(f, ttg)
145
+ content_name = @namer.get_content_name ttg.type
146
+ type = ttg.type.base.name.name
147
+ f.call 'x.text_builtin', "obj.#{content_name.attr_name}", type.inspect
148
+ end
149
+
150
+ def write_property_statements(f, ttg)
151
+ types = ttg.type.bases << ttg.type
152
+ types.each do |type|
153
+ type.each_property do |prop|
154
+ if prop.array?
155
+ write_property_array_statement f, prop
156
+ else
157
+ write_property_statement f, prop
158
+ end
159
+ end
160
+ end
161
+ end
162
+
163
+ def collect_attributes(ttg)
164
+ if ttg.type.soap_array?
165
+ soap_array_attributes(ttg)
166
+ else
167
+ ttg.type.each_attribute.map do |attr|
168
+ attr_name = generate_name attr.name
169
+ accessor_name = @namer.get_attribute_name(attr).attr_name
170
+ type = attr.type.root.name.name.inspect
171
+
172
+ "[#{attr_name}, obj.#{accessor_name}, #{type}]"
173
+ end
174
+ end
175
+ end
176
+
177
+ def write_soap_array_statements(f, ttg)
178
+ item_name = generate_name WsdlMapper::Dom::Name.get(ttg.type.name.ns, @namer.get_soap_array_item_name(ttg.type))
179
+ f.block 'obj.each', ['itm'] do
180
+ write_soap_array_item_statement(f, ttg.type, item_name)
181
+ end
182
+ end
183
+
184
+ def write_soap_array_item_statement(f, type, item_name)
185
+ case type.soap_array_type
186
+ when ::WsdlMapper::Dom::BuiltinType
187
+ write_value_builtin_statement f, item_name, 'itm', type.soap_array_type_name.name.inspect
188
+ when ::WsdlMapper::Dom::ComplexType
189
+ type_name = @namer.get_type_name type.soap_array_type
190
+ f.statement "x.get(#{type_name.name.inspect}).build(x, itm, #{item_name})"
191
+ when ::WsdlMapper::Dom::SimpleType
192
+ type_name = @namer.get_type_name type.soap_array_type
193
+ f.statement "x.get(#{type_name.name.inspect}).build(x, itm, #{item_name})"
194
+ end
195
+ end
196
+
197
+ def soap_array_attributes(ttg)
198
+ # Use String#inspect to get the proper escaping, but cut off the last quotemark and append the array length
199
+ ns = ttg.type.soap_array_type_name.ns.inspect
200
+ name = ttg.type.soap_array_type_name.name.inspect[0..-2] + "[\#{obj.length}]\""
201
+ # TODO: what about its namespace?
202
+ [
203
+ %<[[x.soap_enc, "arrayType"], [#{ns}, #{name}], "string"]>
204
+ ]
205
+ end
206
+
207
+ def write_property_array_statement(f, prop)
208
+ name = "obj.#{@namer.get_property_name(prop).attr_name}.each"
209
+ f.block name, ['itm'] do
210
+ case prop.type
211
+ when ::WsdlMapper::Dom::BuiltinType
212
+ write_builtin_property_statement f, prop, 'itm'
213
+ when ::WsdlMapper::Dom::ComplexType
214
+ write_complex_property_statement f, prop, 'itm'
215
+ when ::WsdlMapper::Dom::SimpleType
216
+ write_simple_property_statement f, prop, 'itm'
217
+ end
218
+ end
219
+ end
220
+
221
+ def write_property_statement(f, prop)
222
+ name = "obj.#{@namer.get_property_name(prop).attr_name}"
223
+ case prop.type
224
+ when ::WsdlMapper::Dom::BuiltinType
225
+ write_builtin_property_statement f, prop, name
226
+ when ::WsdlMapper::Dom::ComplexType
227
+ write_complex_property_statement f, prop, name
228
+ when ::WsdlMapper::Dom::SimpleType
229
+ write_simple_property_statement f, prop, name
230
+ end
231
+ end
232
+
233
+ def write_simple_property_statement(f, prop, var_name)
234
+ element_name = generate_name prop.name
235
+ type_name = @namer.get_type_name get_type_name prop.type
236
+ f.statement "x.get(#{type_name.name.inspect}).build(x, #{var_name}, #{element_name})"
237
+ end
238
+
239
+ def write_complex_property_statement(f, prop, var_name)
240
+ element_name = generate_name prop.name
241
+ type_name = @namer.get_type_name get_type_name prop.type
242
+ f.statement "x.get(#{type_name.name.inspect}).build(x, #{var_name}, #{element_name})"
243
+ end
244
+
245
+ def get_s8r_name(prop)
246
+ if prop.type.name
247
+ @namer.get_s8r_name prop.type
248
+ else
249
+ @namer.get_s8r_name @namer.get_inline_type prop
250
+ end
251
+ end
252
+
253
+ def write_builtin_property_statement(f, prop, name)
254
+ type = prop.type_name.name.inspect
255
+ element_name = generate_name prop.name
256
+ write_value_builtin_statement(f, element_name, name, type)
257
+ end
258
+
259
+ def write_value_builtin_statement(f, element_name, name, type)
260
+ f.statement "x.value_builtin(#{element_name}, #{name}, #{type})"
261
+ end
262
+
263
+ def def_build_method(f, ttg)
264
+ f.in_def 'build', :x, :obj, :name do
265
+ f.statement 'return if obj.nil?'
266
+ case ttg.type
267
+ when ::WsdlMapper::Dom::ComplexType
268
+ def_complex_build_method_body f, ttg
269
+ when ::WsdlMapper::Dom::SimpleType
270
+ def_simple_build_method_body f, ttg
271
+ end
272
+ end
273
+ end
274
+ end
275
+ end
276
+ end