Class: WsdlMapper::Generation::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/wsdl_mapper/generation/result.rb

Defined Under Namespace

Classes: ModuleTreeNode

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema: nil, description: nil) ⇒ Result



19
20
21
22
23
24
25
# File 'lib/wsdl_mapper/generation/result.rb', line 19

def initialize(schema: nil, description: nil)
  @files = []
  @module_tree = []
  @type_names = []
  @description = description
  @schema = schema
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



17
18
19
# File 'lib/wsdl_mapper/generation/result.rb', line 17

def description
  @description
end

#filesObject (readonly)

Returns the value of attribute files.



17
18
19
# File 'lib/wsdl_mapper/generation/result.rb', line 17

def files
  @files
end

#module_treeObject (readonly)

Returns the value of attribute module_tree.



17
18
19
# File 'lib/wsdl_mapper/generation/result.rb', line 17

def module_tree
  @module_tree
end

#schemaObject (readonly)

Returns the value of attribute schema.



17
18
19
# File 'lib/wsdl_mapper/generation/result.rb', line 17

def schema
  @schema
end

#type_namesObject (readonly)

Returns the value of attribute type_names.



17
18
19
# File 'lib/wsdl_mapper/generation/result.rb', line 17

def type_names
  @type_names
end

Class Method Details

.merge(result, *results) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/wsdl_mapper/generation/result.rb', line 46

def merge(result, *results)
  res = new schema: result.schema, description: result.description
  results.each do |r|
    r.type_names.each do |type_name|
      res.add_type type_name
    end
    r.files.each do |f|
      res.files << f
    end
  end
  res
end

Instance Method Details

#add_type(type_name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/wsdl_mapper/generation/result.rb', line 27

def add_type(type_name)
  @type_names << type_name
  modules = type_name.parents.reverse

  children = @module_tree
  modules.each do |mod|
    node = children.find { |n| n.type_name == mod }
    unless node
      node = ModuleTreeNode.new mod
      children << node
    end
    children = node.children
  end
  node = ModuleTreeNode.new type_name
  children << node
  self
end