Class: WsdlMapper::Deserializers::TypeDirectory
- Inherits:
-
Object
- Object
- WsdlMapper::Deserializers::TypeDirectory
- Defined in:
- lib/wsdl_mapper/deserializers/type_directory.rb
Instance Method Summary collapse
- #each_type(&block) ⇒ Object
-
#initialize(*base, &block) ⇒ TypeDirectory
constructor
A new instance of TypeDirectory.
- #register_soap_array(type_name, klass, item_type_name) ⇒ Object
- #register_type(type_name, klass, simple: false, &block) ⇒ Object
Constructor Details
#initialize(*base, &block) ⇒ TypeDirectory
Returns a new instance of TypeDirectory.
9 10 11 12 13 14 |
# File 'lib/wsdl_mapper/deserializers/type_directory.rb', line 9 def initialize(*base, &block) @types = WsdlMapper::Dom::Directory.new on_nil: Errors::UnknownTypeError @base = base instance_exec(&block) if block_given? end |
Instance Method Details
#each_type(&block) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/wsdl_mapper/deserializers/type_directory.rb', line 26 def each_type(&block) if block_given? @base.each do |base| base.each_type(&block) end @types.each(&block) else types = @base.inject([]) { |sum, b| sum + b.each_type.to_a } types + @types.each.to_a end end |
#register_soap_array(type_name, klass, item_type_name) ⇒ Object
21 22 23 24 |
# File 'lib/wsdl_mapper/deserializers/type_directory.rb', line 21 def register_soap_array(type_name, klass, item_type_name) type_name = WsdlMapper::Dom::Name.get(*type_name) @types[type_name] = SoapArrayMapping.new klass, type: item_type_name end |
#register_type(type_name, klass, simple: false, &block) ⇒ Object
16 17 18 19 |
# File 'lib/wsdl_mapper/deserializers/type_directory.rb', line 16 def register_type(type_name, klass, simple: false, &block) type_name = WsdlMapper::Dom::Name.get(*type_name) @types[type_name] = ClassMapping.new klass, simple: simple, &block end |