iab-FinancialProductBuilder 0.1.3 → 0.1.4
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.
- data/lib/deriveDSL.rb +1 -1
- data/lib/models.rb +31 -22
- metadata +1 -1
data/lib/deriveDSL.rb
CHANGED
|
@@ -74,7 +74,7 @@ dictionaryEntries = modelData.genDict(elements)
|
|
|
74
74
|
# in .../libraries/coverages
|
|
75
75
|
# in .../libraries/entities
|
|
76
76
|
resultDMFiles.each do |k,v|
|
|
77
|
-
File.open(File.join(OUTPUT, ORG,'git','libraries',"#{v[3]}","#{k}
|
|
77
|
+
File.open(File.join(OUTPUT, ORG,'git','libraries',"#{v[3]}","#{k}EntityModel.rb"), 'w') {|f| f.write(v[0]) }
|
|
78
78
|
File.open(File.join(OUTPUT, ORG,'git','libraries',"#{v[3]}","#{k}NodeName.rb"), 'w') {|f| f.write(v[1]) }
|
|
79
79
|
File.open(File.join(OUTPUT, ORG,'git','libraries',"#{v[3]}","#{k}PropertyHash"), 'w') {|f| f.write(v[2]) }
|
|
80
80
|
end
|
data/lib/models.rb
CHANGED
|
@@ -3,17 +3,18 @@ require 'Element'
|
|
|
3
3
|
|
|
4
4
|
class Models
|
|
5
5
|
def generateFiles(result)
|
|
6
|
+
list = (result.collect {|x| x if x.coverage}).compact
|
|
6
7
|
@result = Hash.new
|
|
7
8
|
#collect statement reduces the list to a list of coverages only
|
|
8
9
|
@entitycoverage = ""
|
|
9
10
|
@entityModel = ""
|
|
10
11
|
@nodeName = ""
|
|
11
|
-
createClass(
|
|
12
|
+
createClass(nil,list)
|
|
12
13
|
|
|
13
14
|
@entitycoverage = ""
|
|
14
15
|
@propertyHash = ""
|
|
15
16
|
@fieldDECs=""
|
|
16
|
-
createHash(
|
|
17
|
+
createHash(nil,list)
|
|
17
18
|
|
|
18
19
|
@result
|
|
19
20
|
end
|
|
@@ -21,13 +22,14 @@ class Models
|
|
|
21
22
|
def genDict(result)
|
|
22
23
|
@distinctLabels = Hash.new
|
|
23
24
|
@dictionary = ""
|
|
24
|
-
createDictionaryEntries(result)
|
|
25
|
+
#createDictionaryEntries(result)
|
|
25
26
|
@dictionary
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
# -- build entity model and propertyhashes files to plug into IAB library
|
|
29
|
-
def createHash(list)
|
|
30
|
+
def createHash(parent,list)
|
|
30
31
|
list.each do |e|
|
|
32
|
+
e.parent = parent if parent
|
|
31
33
|
if (e.coverage)
|
|
32
34
|
@entitycoverage = e.name
|
|
33
35
|
end
|
|
@@ -36,7 +38,7 @@ class Models
|
|
|
36
38
|
@propertyHash << "#{fieldline(f)}\n"
|
|
37
39
|
@fieldDECs << "#{fieldDEC(e,f)}\n"
|
|
38
40
|
end
|
|
39
|
-
createHash(e.children) if e.children.length > 0
|
|
41
|
+
createHash(e,e.children) if e.children.length > 0
|
|
40
42
|
if (e.coverage)
|
|
41
43
|
@result[e.name.to_sym][2] = @propertyHash + @fieldDECs
|
|
42
44
|
@result[e.name.to_sym][3] = e.type
|
|
@@ -46,20 +48,6 @@ class Models
|
|
|
46
48
|
end
|
|
47
49
|
end
|
|
48
50
|
|
|
49
|
-
def createDictionaryEntries(list)
|
|
50
|
-
list.each do |e|
|
|
51
|
-
fieldPrefix = "'#{pname(e)}#{e.name}".downcase
|
|
52
|
-
e.fields.each do |f|
|
|
53
|
-
key = "#{pname(e)}#{e.name}#{f[:name]}"
|
|
54
|
-
if !@distinctLabels.has_key?(key.to_sym)
|
|
55
|
-
@dictionary << "\t\t\t#{fieldPrefix}_#{f[:name].downcase}' => '#{f[:name]}',\n"
|
|
56
|
-
@distinctLabels[key.to_sym] = 1
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
createDictionaryEntries(e.children) if e.children.length > 0
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
51
|
def hashline(e)
|
|
64
52
|
"#{pname(e)}#{e.name}: !map:HashWithIndifferentAccess\n xpath: \"#{pname2(e,'/')}#{e.name}\""
|
|
65
53
|
end
|
|
@@ -71,21 +59,28 @@ class Models
|
|
|
71
59
|
"#{pname(e)}#{e.name}#{f[:name]}: !map:HashWithIndifferentAccess\n xpath: \"#{pname2(e,'/')}#{e.name}/#{f}\""
|
|
72
60
|
end
|
|
73
61
|
|
|
74
|
-
def createClass(list)
|
|
62
|
+
def createClass(parent,list)
|
|
75
63
|
list.each do |e|
|
|
64
|
+
e.parent = parent if parent
|
|
76
65
|
if (e.coverage)
|
|
77
66
|
@entitycoverage = e.name
|
|
78
67
|
end
|
|
68
|
+
#build up the node name clauses
|
|
79
69
|
@nodeName << "#{classline(e)}\n"
|
|
80
70
|
nodeclauses(e.name)
|
|
81
71
|
|
|
82
72
|
@entityModel << "#{classline(e)}\n"
|
|
73
|
+
#puts "classline for #{e.name} is #{classline(e)}"
|
|
74
|
+
#iterate around the children and build the entity model
|
|
83
75
|
e.children.each do |c|
|
|
76
|
+
c.parent = e
|
|
84
77
|
@entityModel << "#{childline(c)}\n"
|
|
85
78
|
end
|
|
86
79
|
@entityModel << "end\n"
|
|
87
80
|
@nodeName << "end\n"
|
|
88
|
-
|
|
81
|
+
|
|
82
|
+
#now take the children in turn
|
|
83
|
+
createClass(e,e.children) if e.children.length > 0
|
|
89
84
|
if (e.coverage)
|
|
90
85
|
@result[e.name.to_sym] = []
|
|
91
86
|
@result[e.name.to_sym][0] = @entityModel
|
|
@@ -122,8 +117,22 @@ class Models
|
|
|
122
117
|
pname = parent.name + delimiter + pname
|
|
123
118
|
parent = parent.parent
|
|
124
119
|
end
|
|
125
|
-
pname =
|
|
120
|
+
pname = pname if !e.coverage
|
|
126
121
|
pname
|
|
127
122
|
end
|
|
123
|
+
|
|
124
|
+
def createDictionaryEntries(list)
|
|
125
|
+
list.each do |e|
|
|
126
|
+
fieldPrefix = "'#{pname(e)}#{e.name}".downcase
|
|
127
|
+
e.fields.each do |f|
|
|
128
|
+
key = "#{pname(e)}#{e.name}#{f[:name]}"
|
|
129
|
+
if !@distinctLabels.has_key?(key.to_sym)
|
|
130
|
+
@dictionary << "\t\t\t#{fieldPrefix}_#{f[:name].downcase}' => '#{f[:name]}',\n"
|
|
131
|
+
@distinctLabels[key.to_sym] = 1
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
createDictionaryEntries(e.children) if e.children.length > 0
|
|
135
|
+
end
|
|
136
|
+
end
|
|
128
137
|
end
|
|
129
138
|
|