xmlutils 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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,265 @@
1
+ #
2
+ # File: gdlListener.rb
3
+ #
4
+ # Adds rule and ruleset names and aliases to a list (figuratively).
5
+ #
6
+ #
7
+
8
+ require 'rexml/streamlistener'
9
+ require 'xmlutils/gdlcontext'
10
+ require 'xmlutils/gdlcontextobjs'
11
+ require 'xmlutils/listener'
12
+
13
+ include REXML
14
+
15
+
16
+
17
+
18
+ #################################################
19
+ #
20
+ # class GdlListener
21
+ #
22
+ #################################################
23
+ class GdlListener < Listener
24
+
25
+ attr_reader :context
26
+ attr_writer :gdl
27
+
28
+ attr_writer :inGuideline
29
+ attr_writer :inRule
30
+ attr_writer :inRuleset
31
+
32
+
33
+
34
+
35
+
36
+
37
+ def initialize(ctx)
38
+ super()
39
+ @context = ctx
40
+ @gdl = nil
41
+ @inGuideline = false
42
+ @inRule = false
43
+ @inRuleset = false
44
+ end
45
+
46
+
47
+
48
+
49
+ def inGuideline?
50
+ return @inGuideline
51
+ end
52
+
53
+
54
+
55
+
56
+ def inRule?
57
+ return @inRule
58
+ end
59
+
60
+
61
+
62
+
63
+ def inRuleset?
64
+ return @inRuleset
65
+ end
66
+
67
+
68
+
69
+
70
+ #-------------------------------------------------------------------------------------------------------------#
71
+ # tag_start - A start tag has been parsed
72
+ #
73
+ # tag - name of tag (element name)
74
+ # attributes - element tag attributes
75
+ #------------------------------------------------------------------------------------------------------------#
76
+ def tag_start(tag, attributes)
77
+
78
+ case tag
79
+ when 'Guideline'
80
+ openGuideline(attributes)
81
+
82
+ when 'Rule'
83
+ openRule(attributes)
84
+
85
+ when 'Ruleset'
86
+ openRuleset(attributes)
87
+
88
+ else
89
+ openUnknown(tag, attributes) # Don't care
90
+ end # case
91
+
92
+ end
93
+
94
+
95
+
96
+
97
+ #-------------------------------------------------------------------------------------------------------------#
98
+ # tag_end - An ending tag has been parsed
99
+ #
100
+ # tag - name of tag (element name)
101
+ #------------------------------------------------------------------------------------------------------------#
102
+ def tag_end(tag)
103
+
104
+ case tag
105
+ when 'Guideline'
106
+ closeGuideline()
107
+
108
+ when 'Rule'
109
+ closeRule()
110
+
111
+ when 'Ruleset'
112
+ closeRuleset()
113
+
114
+ else
115
+ closeUnknown(tag) # Don't care
116
+ end # case
117
+
118
+ end
119
+
120
+
121
+
122
+
123
+ #-------------------------------------------------------------------------------------------------------------#
124
+ # openGuideline - Add a Guideline to the context object
125
+ #
126
+ # attributes - Guideline element attributes
127
+ #
128
+ #------------------------------------------------------------------------------------------------------------#
129
+ def openGuideline(attributes)
130
+ return unless (!inGuideline?)
131
+
132
+ if ($DEBUG)
133
+ puts "openGuideline:"
134
+
135
+ if(!attributes.empty?)
136
+ puts " Attr:"
137
+ attributes.each do |attr|
138
+ puts " #{attr[0]}: #{attr[1]}"
139
+ end
140
+ end
141
+ end # if $DEBUG
142
+
143
+ @gdl = Guideline.new(attributes)
144
+
145
+ @inGuideline = true
146
+
147
+ end # openGuideline
148
+
149
+
150
+
151
+ #-------------------------------------------------------------------------------------------------------------#
152
+ # closeGuideline - Close a Guideline object
153
+ #
154
+ #
155
+ #------------------------------------------------------------------------------------------------------------#
156
+ def closeGuideline()
157
+ if (inGuideline?)
158
+ @GuidelineOpen = false
159
+ @context.guideline = @gdl
160
+
161
+ puts "closeGuideline" unless (!$DEBUG)
162
+ puts "" unless (!$DEBUG)
163
+ end # if
164
+
165
+ end # closeGuideline
166
+
167
+
168
+
169
+ #-------------------------------------------------------------------------------------------------------------#
170
+ # openRule - Add a rule to the context object
171
+ #
172
+ # attributes - rule element attributes
173
+ #
174
+ #------------------------------------------------------------------------------------------------------------#
175
+ def openRule(attributes)
176
+ return unless (inGuideline? && (!inRuleset?))
177
+
178
+ if ($DEBUG)
179
+ puts "openRule:"
180
+
181
+ if(!attributes.empty?)
182
+ puts " Attr:"
183
+ attributes.each do |attr|
184
+ puts " #{attr[0]}: #{attr[1]}"
185
+ end
186
+ end
187
+ end # if $DEBUG
188
+
189
+ ruleAlias = attributes["Name"]
190
+ item = ["rule", "#{ruleAlias}"]
191
+
192
+ @gdl.addItem(item)
193
+ @inRule = true
194
+
195
+ puts "Guideline item: [#{item[0]}] #{item[1]}" if verbose?
196
+
197
+ end # openRule
198
+
199
+
200
+
201
+ #-------------------------------------------------------------------------------------------------------------#
202
+ # closeRule - Close a rule object
203
+ #
204
+ #
205
+ #------------------------------------------------------------------------------------------------------------#
206
+ def closeRule()
207
+ if (inRule?)
208
+ @inRule = false
209
+
210
+ puts "closeRule" unless (!$DEBUG)
211
+ puts "" unless (!$DEBUG)
212
+ end # if
213
+
214
+ end # closeRule
215
+
216
+
217
+
218
+ #-------------------------------------------------------------------------------------------------------------#
219
+ # openRuleset - Open a ruleset object
220
+ #
221
+ # attributes - ruleset element attributes
222
+ #
223
+ #------------------------------------------------------------------------------------------------------------#
224
+ def openRuleset(attributes)
225
+ return unless (inGuideline? && (!inRuleset?))
226
+
227
+ if ($DEBUG)
228
+ puts "openRuleset:"
229
+
230
+ if(!attributes.empty?)
231
+ puts " Attr:"
232
+ attributes.each do |attr|
233
+ puts " #{attr[0]}: #{attr[1]}"
234
+ end
235
+ end
236
+ end # if $DEBUG
237
+
238
+ rsAlias = attributes["Name"]
239
+ item = ["ruleset", "#{rsAlias}"]
240
+
241
+ @gdl.addItem(item)
242
+ @inRuleset = true
243
+
244
+ puts "Guideline item: [#{item[0]}] #{item[1]}" if verbose?
245
+
246
+ end # openRuleset
247
+
248
+
249
+
250
+ #-------------------------------------------------------------------------------------------------------------#
251
+ # closeRuleset - Close a ruleset object
252
+ #
253
+ #
254
+ #------------------------------------------------------------------------------------------------------------#
255
+ def closeRuleset()
256
+ if (inRuleset?)
257
+ @inRuleset = false
258
+
259
+ puts "closeRuleset" unless (!$DEBUG)
260
+ puts "" unless (!$DEBUG)
261
+ end # if
262
+
263
+ end # closeRuleset
264
+ end # class GdlListener
265
+