Class: WsdlMapper::Serializers::SerializerCore

Inherits:
Object
  • Object
show all
Defined in:
lib/wsdl_mapper/serializers/serializer_core.rb

Instance Method Summary (collapse)

Constructor Details

- (SerializerCore) initialize(resolver:, namespaces: WsdlMapper::Dom::Namespaces.new, default_namespace: nil)

Returns a new instance of SerializerCore



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 11

def initialize(resolver:, namespaces: WsdlMapper::Dom::Namespaces.new, default_namespace: nil)
  @doc = ::Nokogiri::XML::Document.new
  @doc.encoding = 'UTF-8'
  @x = ::Nokogiri::XML::Builder.with @doc
  @tm = ::WsdlMapper::TypeMapping::DEFAULT
  @resolver = resolver
  @namespaces = namespaces
  if default_namespace
    @namespaces.default = default_namespace
  end
end

Instance Method Details

- (Object) complex(type_name, element_name, attributes)



27
28
29
30
31
32
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 27

def complex(type_name, element_name, attributes)
  # TODO: keep type_name parameter?
  @x.send expand_tag(*element_name), eval_attributes(attributes) do |x|
    yield self
  end
end

- (Object) get(name)



23
24
25
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 23

def get(name)
  @resolver.resolve name
end

- (Object) simple(type_name, element_name)



34
35
36
37
38
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 34

def simple(type_name, element_name)
  @x.send expand_tag(*element_name) do |x|
    yield self
  end
end

- (Object) soap_enc



61
62
63
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 61

def soap_enc
  @soap_enc ||= ::WsdlMapper::Dom::SoapEncodingType::NAMESPACE
end

- (Object) text_builtin(value, type_name)



40
41
42
43
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 40

def text_builtin(value, type_name)
  return if value.nil?
  @x.text builtin_to_xml(type_name, value)
end

- (Object) to_doc



54
55
56
57
58
59
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 54

def to_doc
  @namespaces.each do |(prefix, url)|
    @doc.root.add_namespace prefix, url
  end
  @doc
end

- (Object) to_xml



50
51
52
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 50

def to_xml
  to_doc.to_xml
end

- (Object) value_builtin(element_name, value, type_name)



45
46
47
48
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 45

def value_builtin(element_name, value, type_name)
  return if value.nil?
  @x.send expand_tag(*element_name), builtin_to_xml(type_name, value)
end

- (Object) xsd



65
66
67
# File 'lib/wsdl_mapper/serializers/serializer_core.rb', line 65

def xsd
  @xsd ||= ::WsdlMapper::Dom::BuiltinType::NAMESPACE
end