xmlutils 0.0.2

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 (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +77 -0
  6. data/bin/xmltogdl +88 -0
  7. data/docs/README.txt +20 -0
  8. data/lib/xmlutils/contextlistener.rb +432 -0
  9. data/lib/xmlutils/contextparser.rb +111 -0
  10. data/lib/xmlutils/dumplistener.rb +57 -0
  11. data/lib/xmlutils/gdlcontext.rb +305 -0
  12. data/lib/xmlutils/gdlcontextobjs.rb +286 -0
  13. data/lib/xmlutils/gdldoc.rb +547 -0
  14. data/lib/xmlutils/gdldocbuilder.rb +181 -0
  15. data/lib/xmlutils/gdllistener.rb +265 -0
  16. data/lib/xmlutils/gdltemplate.rb +488 -0
  17. data/lib/xmlutils/lineparser.rb +193 -0
  18. data/lib/xmlutils/listener.rb +459 -0
  19. data/lib/xmlutils/rulelistener.rb +414 -0
  20. data/lib/xmlutils/ruleparser.rb +112 -0
  21. data/lib/xmlutils/varlistener.rb +86 -0
  22. data/lib/xmlutils/version.rb +5 -0
  23. data/lib/xmlutils/xmlrulevisitor.rb +704 -0
  24. data/lib/xmlutils/xmltogdlcontroller.rb +93 -0
  25. data/lib/xmlutils/xmltogdltask.rb +23 -0
  26. data/lib/xmlutils/xmlvisitor.rb +690 -0
  27. data/lib/xmlutils.rb +40 -0
  28. data/rakefile.rb +34 -0
  29. data/unittests/2830.xml +1 -0
  30. data/unittests/chunks.rb +31 -0
  31. data/unittests/curDirTest.rb +2 -0
  32. data/unittests/data/2830-GENERATED.gdl +309 -0
  33. data/unittests/data/2830-GENERATED.xml +1 -0
  34. data/unittests/data/AUGuideline.xml +12 -0
  35. data/unittests/data/AUGuideline.xml.gdl +19190 -0
  36. data/unittests/data/BAKUP.DCTEST1.xml +1 -0
  37. data/unittests/data/DCTEST.xml +1 -0
  38. data/unittests/data/DCTEST1.xml +1 -0
  39. data/unittests/data/DCTEST1.xml.gdl +14890 -0
  40. data/unittests/data/DCTEST1.xml.rename.csv +180 -0
  41. data/unittests/data/DCTEST1wLookups.xml +174 -0
  42. data/unittests/data/DCTEST1wLookups.xml.gdl +127 -0
  43. data/unittests/data/GENERATED.gdl.xml +1 -0
  44. data/unittests/data/Message.xml +1 -0
  45. data/unittests/data/Message.xml.gdl +142 -0
  46. data/unittests/data/Pricing2ndGuideline.xml +1 -0
  47. data/unittests/data/Pricing2ndGuideline.xml.gdl +52670 -0
  48. data/unittests/data/Z-TEMP-Jeff.xml +1 -0
  49. data/unittests/data/Z-TEMP-Jeff.xml.gdl +288 -0
  50. data/unittests/tc_convert_xml_to_gdl.rb +23 -0
  51. data/unittests/ts_allTests.rb +2 -0
  52. data/xmlutils.gemspec +25 -0
  53. metadata +139 -0
@@ -0,0 +1,286 @@
1
+ #
2
+ # File: gdlContextObjs.rb
3
+ #
4
+ # These are guideline context objects
5
+ #
6
+ #
7
+
8
+
9
+
10
+ #################################################
11
+ #
12
+ # class Dpm
13
+ #
14
+ #################################################
15
+ class Dpm
16
+
17
+ attr_accessor :name
18
+ attr_accessor :alias
19
+ attr_accessor :varType
20
+ attr_accessor :dataType
21
+ attr_accessor :prodType
22
+
23
+ def initialize(name, attributes)
24
+ @name = name
25
+ @alias = attributes["Name"]
26
+ @varType = attributes["Type"]
27
+ @dataType = attributes["DataType"] if attributes.has_key?("DataType")
28
+ @prodType = attributes["ProductType"]
29
+
30
+ @dataType = @prodType if (nil == @dataType)
31
+
32
+ case @prodType
33
+ when '1'
34
+ @prodType = "boolean"
35
+
36
+ when '2'
37
+ @prodType = "date"
38
+
39
+ when '3'
40
+ @prodType = "money"
41
+
42
+ when '4'
43
+ @prodType = "numeric"
44
+
45
+ when '5'
46
+ @prodType = "percentage"
47
+
48
+ when '6'
49
+ @prodType = "text"
50
+
51
+ end # prodType
52
+ end # initialize
53
+ end # class Dpm
54
+
55
+
56
+
57
+
58
+ #################################################
59
+ #
60
+ # class Ppm
61
+ #
62
+ #################################################
63
+ class Ppm
64
+
65
+ attr_accessor :name
66
+ attr_accessor :alias
67
+ attr_accessor :varType
68
+ attr_accessor :dataType
69
+
70
+ # def initialize(name, als, varType, dataType)
71
+ # @name = name
72
+ # @alias = als
73
+ # @varType = varType
74
+ # @dataType = dataType
75
+ #
76
+ # end # initialize
77
+ def initialize(name, attributes)
78
+ @name = name
79
+ @alias = attributes["Name"]
80
+ @varType = attributes["Type"]
81
+ @dataType = "UNKNOWN"
82
+ @dataType = attributes["DataType"] if attributes.has_key?("DataType")
83
+
84
+
85
+ case @varType
86
+ when 'APM'
87
+ @varType = "app"
88
+
89
+ when 'CRP'
90
+ @varType = "crd"
91
+
92
+ when 'PRD'
93
+ @varType = "prd"
94
+
95
+ end # varType
96
+
97
+
98
+ case @dataType
99
+ when 'Boolean'
100
+ @dataType = "boolean"
101
+
102
+ when 'Date'
103
+ @dataType = "date"
104
+
105
+ when 'Money'
106
+ @dataType = "money"
107
+
108
+ when 'Numeric'
109
+ @dataType = "numeric"
110
+
111
+ when 'Percentage'
112
+ @dataType = "percentage"
113
+
114
+ when 'Text'
115
+ @dataType = "text"
116
+ end # dataType
117
+ end # initialize
118
+ end # class Ppm
119
+
120
+
121
+
122
+
123
+ #################################################
124
+ #
125
+ # class Rule
126
+ #
127
+ #################################################
128
+ class Rule
129
+
130
+ attr_accessor :name
131
+ attr_accessor :alias
132
+ attr_accessor :src
133
+ attr_accessor :xml
134
+ attr_accessor :ifMsgs
135
+ attr_accessor :elseMsgs
136
+
137
+
138
+ def initialize(name, als)
139
+ @name = name
140
+ @alias = als
141
+ @src = nil
142
+ @xml = nil
143
+ @ifMsgs = Array.new
144
+ @elseMsgs = Array.new
145
+ end # initialize
146
+ end # class Rule
147
+
148
+
149
+
150
+
151
+ #################################################
152
+ #
153
+ # class Lookup
154
+ #
155
+ #################################################
156
+ class Lookup
157
+
158
+ attr_accessor :name
159
+ attr_accessor :xParam
160
+ attr_accessor :yParam
161
+
162
+ def initialize(attributes)
163
+ lkName = attributes["Name"]
164
+
165
+ @name = lkName
166
+ end # initialize
167
+ end # class Lookup
168
+
169
+
170
+
171
+
172
+ #################################################
173
+ #
174
+ # class Ruleset
175
+ #
176
+ #################################################
177
+ class Ruleset
178
+
179
+ attr_accessor :name
180
+ attr_accessor :alias
181
+ attr_accessor :rules # rule aliases
182
+ attr_accessor :type # This indicates the ruleset type (Normal, PL)
183
+ attr_accessor :execType # This indicated the execute type (TRUE, FALSE, CONTINUE)
184
+
185
+
186
+ def initialize(attributes)
187
+ rsAlias = attributes["Name"]
188
+
189
+ # Parse out the exit type
190
+ case attributes["Type"]
191
+ when "0"
192
+ rsType = "Normal"
193
+
194
+ when "1"
195
+ rsType = "PL"
196
+
197
+ else
198
+ rsType = "*** UNKNOWN ***"
199
+ end
200
+
201
+ # Parse out the execute type
202
+ case attributes["ExecuteType"]
203
+ when "1"
204
+ rsExecType = "true"
205
+
206
+ when "2"
207
+ rsExecType = "false"
208
+
209
+ when "3"
210
+ rsExecType = "continue"
211
+
212
+ else
213
+ rsExecType = "*** UNKNOWN ***"
214
+ end
215
+
216
+ # Store the results
217
+ @name = rsAlias
218
+ @alias = rsAlias
219
+ @type = rsType
220
+ @execType = rsExecType
221
+ @rules = Array.new
222
+ end # initialize
223
+
224
+ def addRule(als)
225
+ @rules << als
226
+ end # addRule
227
+ end # class Ruleset
228
+
229
+
230
+
231
+
232
+ #################################################
233
+ #
234
+ # class Guideline
235
+ #
236
+ #################################################
237
+ class Guideline
238
+
239
+ attr_accessor :id
240
+ attr_accessor :name
241
+ attr_accessor :version
242
+ attr_accessor :startDate
243
+ attr_accessor :items
244
+
245
+
246
+ def initialize(attributes)
247
+ @id = attributes["GuidelineID"]
248
+ @name = attributes["Name"]
249
+ @version = attributes["Version"]
250
+ @startDate = attributes["StartDate"]
251
+ @items = Array.new
252
+ end # initialize
253
+
254
+ def addItem(itemAry)
255
+ if (itemAry[0] == "rule" || itemAry[0] == "ruleset")
256
+ items.push(itemAry)
257
+ else
258
+ raise "Invalid arg: expected rule or ruleset type"
259
+ end # if
260
+ end # addItem
261
+ end # class Guideline
262
+
263
+
264
+
265
+ #################################################
266
+ #
267
+ # class Message
268
+ #
269
+ #################################################
270
+ class Message
271
+
272
+ attr_accessor :type
273
+ attr_accessor :exceptionType
274
+ attr_accessor :category
275
+ attr_accessor :priorTo
276
+ attr_accessor :msg
277
+
278
+
279
+ def initialize(attributes)
280
+ @type = attributes["Type"] # Exceptions, Observation, Condition
281
+ @exceptionType = attributes["ExceptionType"] # Exceptions
282
+ @category = attributes["Category"] # 1 => ,
283
+ @priorTo = attributes["PriorTo"] # 1 => ,
284
+ @msg = String.new
285
+ end # initialize
286
+ end # class Message