X12 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/CHANGELOG +13 -0
  2. data/COPYING +502 -0
  3. data/README +309 -0
  4. data/Rakefile +157 -0
  5. data/TODO +6 -0
  6. data/doc/classes/X12.html +174 -0
  7. data/doc/classes/X12/Base.html +677 -0
  8. data/doc/classes/X12/Composite.html +156 -0
  9. data/doc/classes/X12/Empty.html +186 -0
  10. data/doc/classes/X12/Field.html +339 -0
  11. data/doc/classes/X12/Loop.html +202 -0
  12. data/doc/classes/X12/Parser.html +306 -0
  13. data/doc/classes/X12/Segment.html +277 -0
  14. data/doc/classes/X12/Table.html +198 -0
  15. data/doc/created.rid +1 -0
  16. data/doc/files/CHANGELOG.html +108 -0
  17. data/doc/files/README.html +474 -0
  18. data/doc/files/TODO.html +95 -0
  19. data/doc/files/lib/X12/Base_rb.html +83 -0
  20. data/doc/files/lib/X12/Composite_rb.html +83 -0
  21. data/doc/files/lib/X12/Empty_rb.html +83 -0
  22. data/doc/files/lib/X12/Field_rb.html +83 -0
  23. data/doc/files/lib/X12/Loop_rb.html +83 -0
  24. data/doc/files/lib/X12/Parser_rb.html +83 -0
  25. data/doc/files/lib/X12/Segment_rb.html +83 -0
  26. data/doc/files/lib/X12/Table_rb.html +83 -0
  27. data/doc/files/lib/X12_rb.html +100 -0
  28. data/doc/fr_class_index.html +35 -0
  29. data/doc/fr_file_index.html +38 -0
  30. data/doc/fr_method_index.html +62 -0
  31. data/doc/index.html +27 -0
  32. data/doc/rdoc-style.css +208 -0
  33. data/example/factory.rb +92 -0
  34. data/example/parse.rb +56 -0
  35. data/lib/X12.rb +50 -0
  36. data/lib/X12/Base.rb +192 -0
  37. data/lib/X12/Composite.rb +37 -0
  38. data/lib/X12/Empty.rb +43 -0
  39. data/lib/X12/Field.rb +81 -0
  40. data/lib/X12/Loop.rb +74 -0
  41. data/lib/X12/Parser.rb +98 -0
  42. data/lib/X12/Segment.rb +92 -0
  43. data/lib/X12/Table.rb +44 -0
  44. data/lib/X12/x12syntax.treetop +256 -0
  45. data/misc/997.d12 +885 -0
  46. data/misc/rdoc_template.rb +697 -0
  47. data/test/tc_factory_997.rb +130 -0
  48. data/test/tc_parse_997.rb +146 -0
  49. data/test/ts_x12.rb +27 -0
  50. metadata +108 -0
@@ -0,0 +1,202 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: X12::Loop</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">X12::Loop</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/X12/Loop_rb.html">
59
+ lib/X12/Loop.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Base.html">
69
+ Base
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ $Id: Loop.rb 35 2008-11-13 18:33:44Z ikk $
86
+ </p>
87
+ <p>
88
+ Implements nested loops of segments
89
+ </p>
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+ <div id="method-list">
97
+ <h3 class="section-bar">Methods</h3>
98
+
99
+ <div class="name-list">
100
+ <a href="#M000014">parse</a>&nbsp;&nbsp;
101
+ <a href="#M000015">render</a>&nbsp;&nbsp;
102
+ </div>
103
+ </div>
104
+
105
+ </div>
106
+
107
+
108
+ <!-- if includes -->
109
+
110
+ <div id="section">
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ <!-- if method_list -->
120
+ <div id="methods">
121
+ <h3 class="section-bar">Public Instance methods</h3>
122
+
123
+ <div id="method-M000014" class="method-detail">
124
+ <a name="M000014"></a>
125
+
126
+ <div class="method-heading">
127
+ <a href="#M000014" class="method-signature">
128
+ <span class="method-name">parse</span><span class="method-args">(str)</span>
129
+ </a>
130
+ </div>
131
+
132
+ <div class="method-description">
133
+ <p>
134
+ Parse a string and fill out internal structures with the pieces of it.
135
+ Returns an unparsed portion of the string or the original string if nothing
136
+ was parsed out.
137
+ </p>
138
+ <p><a class="source-toggle" href="#"
139
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000014-source">
141
+ <pre>
142
+ <span class="ruby-comment cmt"># File lib/X12/Loop.rb, line 47</span>
143
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">str</span>)
144
+ 48: <span class="ruby-comment cmt">#puts &quot;Parsing loop #{name}: &quot;+str</span>
145
+ 49: <span class="ruby-identifier">s</span> = <span class="ruby-identifier">str</span>
146
+ 50: <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
147
+ 51: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">i</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">s</span>)
148
+ 52: <span class="ruby-identifier">s</span> = <span class="ruby-identifier">m</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>
149
+ 53: }
150
+ 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">s</span>
151
+ 55: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
152
+ 56: <span class="ruby-keyword kw">else</span>
153
+ 57: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parsed_str</span> = <span class="ruby-identifier">str</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-operator">-</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>]
154
+ 58: <span class="ruby-identifier">s</span> = <span class="ruby-identifier">do_repeats</span>(<span class="ruby-identifier">s</span>)
155
+ 59: <span class="ruby-keyword kw">end</span>
156
+ 60: <span class="ruby-comment cmt">#puts 'Parsed loop '+self.inspect</span>
157
+ 61: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
158
+ 62: <span class="ruby-keyword kw">end</span>
159
+ </pre>
160
+ </div>
161
+ </div>
162
+ </div>
163
+
164
+ <div id="method-M000015" class="method-detail">
165
+ <a name="M000015"></a>
166
+
167
+ <div class="method-heading">
168
+ <a href="#M000015" class="method-signature">
169
+ <span class="method-name">render</span><span class="method-args">()</span>
170
+ </a>
171
+ </div>
172
+
173
+ <div class="method-description">
174
+ <p>
175
+ Render all components of this loop as string suitable for EDI
176
+ </p>
177
+ <p><a class="source-toggle" href="#"
178
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
179
+ <div class="method-source-code" id="M000015-source">
180
+ <pre>
181
+ <span class="ruby-comment cmt"># File lib/X12/Loop.rb, line 65</span>
182
+ 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>
183
+ 66: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value str">''</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">loop_str</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
184
+ 67: <span class="ruby-identifier">loop_str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value str">''</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">nodes_str</span>, <span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
185
+ 68: <span class="ruby-identifier">nodes_str</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">j</span>.<span class="ruby-identifier">render</span>
186
+ 69: }
187
+ 70: }
188
+ 71: <span class="ruby-keyword kw">end</span>
189
+ </pre>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+
195
+ </div>
196
+
197
+
198
+ </div>
199
+
200
+
201
+ </body>
202
+ </html>
@@ -0,0 +1,306 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: X12::Parser</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">X12::Parser</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/X12/Parser_rb.html">
59
+ lib/X12/Parser.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ $Id: Parser.rb 35 2008-11-13 18:33:44Z ikk $
84
+ </p>
85
+ <p>
86
+ Main class for creating <a href="../X12.html">X12</a> parsers and
87
+ factories.
88
+ </p>
89
+
90
+ </div>
91
+
92
+
93
+ </div>
94
+
95
+ <div id="method-list">
96
+ <h3 class="section-bar">Methods</h3>
97
+
98
+ <div class="name-list">
99
+ <a href="#M000007">factory</a>&nbsp;&nbsp;
100
+ <a href="#M000005">new</a>&nbsp;&nbsp;
101
+ <a href="#M000006">parse</a>&nbsp;&nbsp;
102
+ <a href="#M000008">process_loop</a>&nbsp;&nbsp;
103
+ <a href="#M000009">process_segment</a>&nbsp;&nbsp;
104
+ </div>
105
+ </div>
106
+
107
+ </div>
108
+
109
+
110
+ <!-- if includes -->
111
+
112
+ <div id="section">
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+ <!-- if method_list -->
122
+ <div id="methods">
123
+ <h3 class="section-bar">Public Class methods</h3>
124
+
125
+ <div id="method-M000005" class="method-detail">
126
+ <a name="M000005"></a>
127
+
128
+ <div class="method-heading">
129
+ <a href="#M000005" class="method-signature">
130
+ <span class="method-name">new</span><span class="method-args">(file_name)</span>
131
+ </a>
132
+ </div>
133
+
134
+ <div class="method-description">
135
+ <p>
136
+ Creates a parser out of a definition
137
+ </p>
138
+ <p><a class="source-toggle" href="#"
139
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000005-source">
141
+ <pre>
142
+ <span class="ruby-comment cmt"># File lib/X12/Parser.rb, line 33</span>
143
+ 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">file_name</span>)
144
+ 34: <span class="ruby-identifier">str</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-value str">'r'</span>).<span class="ruby-identifier">read</span>
145
+ 35: <span class="ruby-identifier">treetop_parser</span> = <span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">X12syntaxParser</span>.<span class="ruby-identifier">new</span>
146
+ 36: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">treetop_parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">str</span>)
147
+ 37: <span class="ruby-identifier">throw</span> <span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Cannot parse X12 definition in #{file_name}&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">res</span>
148
+ 38: <span class="ruby-ivar">@x12_definition</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">get</span>
149
+ 39:
150
+ 40: <span class="ruby-comment cmt"># Populate fields in all segments found in all the loops</span>
151
+ 41: <span class="ruby-ivar">@x12_definition</span>[<span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Loop</span>].<span class="ruby-identifier">each_pair</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
152
+ 42: <span class="ruby-comment cmt">#puts &quot;Processing loop #{k}&quot;</span>
153
+ 43: <span class="ruby-identifier">process_loop</span>(<span class="ruby-identifier">v</span>)
154
+ 44: }
155
+ 45: <span class="ruby-comment cmt"># @x12_definition.keys.each{|t|</span>
156
+ 46: <span class="ruby-comment cmt"># puts &quot;**** #{t}&quot;</span>
157
+ 47:
158
+ 48: <span class="ruby-comment cmt"># case </span>
159
+ 49: <span class="ruby-comment cmt"># when t==X12::Segment: @x12_definition[t].each{|i| puts i.inspect; puts i.regexp.source}</span>
160
+ 50: <span class="ruby-comment cmt"># when t==X12::Loop: @x12_definition[t].each{|i| puts i.inspect.gsub(/\\*\&quot;/, '&quot;') ; puts i.regexp.source}</span>
161
+ 51: <span class="ruby-comment cmt"># else</span>
162
+ 52: <span class="ruby-comment cmt"># puts @x12_definition[t].inspect</span>
163
+ 53: <span class="ruby-comment cmt"># end</span>
164
+ 54: <span class="ruby-comment cmt"># puts &quot;\n\n&quot;</span>
165
+ 55: <span class="ruby-comment cmt"># }</span>
166
+ 56:
167
+ 57: <span class="ruby-keyword kw">end</span>
168
+ </pre>
169
+ </div>
170
+ </div>
171
+ </div>
172
+
173
+ <h3 class="section-bar">Public Instance methods</h3>
174
+
175
+ <div id="method-M000007" class="method-detail">
176
+ <a name="M000007"></a>
177
+
178
+ <div class="method-heading">
179
+ <a href="#M000007" class="method-signature">
180
+ <span class="method-name">factory</span><span class="method-args">(loop_name)</span>
181
+ </a>
182
+ </div>
183
+
184
+ <div class="method-description">
185
+ <p>
186
+ Make an empty loop to be filled out with information
187
+ </p>
188
+ <p><a class="source-toggle" href="#"
189
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
190
+ <div class="method-source-code" id="M000007-source">
191
+ <pre>
192
+ <span class="ruby-comment cmt"># File lib/X12/Parser.rb, line 69</span>
193
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">factory</span>(<span class="ruby-identifier">loop_name</span>)
194
+ 70: <span class="ruby-identifier">loop</span> = <span class="ruby-ivar">@x12_definition</span>[<span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Loop</span>][<span class="ruby-identifier">loop_name</span>]
195
+ 71: <span class="ruby-identifier">throw</span> <span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Cannot find a definition for loop #{loop_name}&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">loop</span>
196
+ 72: <span class="ruby-identifier">loop</span> = <span class="ruby-identifier">loop</span>.<span class="ruby-identifier">dup</span>
197
+ 73: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">loop</span>
198
+ 74: <span class="ruby-keyword kw">end</span>
199
+ </pre>
200
+ </div>
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000006" class="method-detail">
205
+ <a name="M000006"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="#M000006" class="method-signature">
209
+ <span class="method-name">parse</span><span class="method-args">(loop_name, str)</span>
210
+ </a>
211
+ </div>
212
+
213
+ <div class="method-description">
214
+ <p>
215
+ Parse a loop of a given name out of a string. Throws an exception if the
216
+ loop name is not defined.
217
+ </p>
218
+ <p><a class="source-toggle" href="#"
219
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
220
+ <div class="method-source-code" id="M000006-source">
221
+ <pre>
222
+ <span class="ruby-comment cmt"># File lib/X12/Parser.rb, line 60</span>
223
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">loop_name</span>, <span class="ruby-identifier">str</span>)
224
+ 61: <span class="ruby-identifier">loop</span> = <span class="ruby-ivar">@x12_definition</span>[<span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Loop</span>][<span class="ruby-identifier">loop_name</span>]
225
+ 62: <span class="ruby-identifier">throw</span> <span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Cannot find a definition for loop #{loop_name}&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">loop</span>
226
+ 63: <span class="ruby-identifier">loop</span> = <span class="ruby-identifier">loop</span>.<span class="ruby-identifier">dup</span>
227
+ 64: <span class="ruby-identifier">loop</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">str</span>)
228
+ 65: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">loop</span>
229
+ 66: <span class="ruby-keyword kw">end</span>
230
+ </pre>
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+ <div id="method-M000008" class="method-detail">
236
+ <a name="M000008"></a>
237
+
238
+ <div class="method-heading">
239
+ <a href="#M000008" class="method-signature">
240
+ <span class="method-name">process_loop</span><span class="method-args">(loop)</span>
241
+ </a>
242
+ </div>
243
+
244
+ <div class="method-description">
245
+ <p>
246
+ Recursively scan the loop and instantiate fields&#8217; definitions for all
247
+ its segments
248
+ </p>
249
+ <p><a class="source-toggle" href="#"
250
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
251
+ <div class="method-source-code" id="M000008-source">
252
+ <pre>
253
+ <span class="ruby-comment cmt"># File lib/X12/Parser.rb, line 78</span>
254
+ 78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_loop</span>(<span class="ruby-identifier">loop</span>)
255
+ 79: <span class="ruby-identifier">loop</span>.<span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
256
+ 80: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">i</span>
257
+ 81: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Loop</span><span class="ruby-operator">:</span> <span class="ruby-identifier">process_loop</span>(<span class="ruby-identifier">i</span>)
258
+ 82: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Segment</span><span class="ruby-operator">:</span> <span class="ruby-identifier">process_segment</span>(<span class="ruby-identifier">i</span>)
259
+ 83: <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">return</span>
260
+ 84: <span class="ruby-keyword kw">end</span>
261
+ 85: }
262
+ 86: <span class="ruby-keyword kw">end</span>
263
+ </pre>
264
+ </div>
265
+ </div>
266
+ </div>
267
+
268
+ <div id="method-M000009" class="method-detail">
269
+ <a name="M000009"></a>
270
+
271
+ <div class="method-heading">
272
+ <a href="#M000009" class="method-signature">
273
+ <span class="method-name">process_segment</span><span class="method-args">(segment)</span>
274
+ </a>
275
+ </div>
276
+
277
+ <div class="method-description">
278
+ <p>
279
+ Instantiate segment&#8216;s fields as previously defined
280
+ </p>
281
+ <p><a class="source-toggle" href="#"
282
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
283
+ <div class="method-source-code" id="M000009-source">
284
+ <pre>
285
+ <span class="ruby-comment cmt"># File lib/X12/Parser.rb, line 89</span>
286
+ 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_segment</span>(<span class="ruby-identifier">segment</span>)
287
+ 90: <span class="ruby-identifier">segment_definition</span> = <span class="ruby-ivar">@x12_definition</span>[<span class="ruby-constant">X12</span><span class="ruby-operator">::</span><span class="ruby-constant">Segment</span>][<span class="ruby-identifier">segment</span>.<span class="ruby-identifier">name</span>]
288
+ 91: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">segment_definition</span>
289
+ 92: <span class="ruby-identifier">segment_definition</span>.<span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each_index</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
290
+ 93: <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">segment_definition</span>.<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>]
291
+ 94: }
292
+ 95: <span class="ruby-keyword kw">end</span>
293
+ </pre>
294
+ </div>
295
+ </div>
296
+ </div>
297
+
298
+
299
+ </div>
300
+
301
+
302
+ </div>
303
+
304
+
305
+ </body>
306
+ </html>