Included Modules

Class Index [+]

Quicksearch

Mail::ContentType

Public Instance Methods

_nt_attribute() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 433
433:     def _nt_attribute
434:       start_index = index
435:       if node_cache[:attribute].has_key?(index)
436:         cached = node_cache[:attribute][index]
437:         if cached
438:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
439:           @index = cached.interval.end
440:         end
441:         return cached
442:       end
443: 
444:       s0, i0 = [], index
445:       loop do
446:         r1 = _nt_token
447:         if r1
448:           s0 << r1
449:         else
450:           break
451:         end
452:       end
453:       if s0.empty?
454:         @index = i0
455:         r0 = nil
456:       else
457:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
458:       end
459: 
460:       node_cache[:attribute][start_index] = r0
461: 
462:       r0
463:     end
_nt_composite_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 249
249:     def _nt_composite_type
250:       start_index = index
251:       if node_cache[:composite_type].has_key?(index)
252:         cached = node_cache[:composite_type][index]
253:         if cached
254:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
255:           @index = cached.interval.end
256:         end
257:         return cached
258:       end
259: 
260:       i0 = index
261:       if has_terminal?("message", false, index)
262:         r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
263:         @index += 7
264:       else
265:         terminal_parse_failure("message")
266:         r1 = nil
267:       end
268:       if r1
269:         r0 = r1
270:       else
271:         if has_terminal?("multipart", false, index)
272:           r2 = instantiate_node(SyntaxNode,input, index...(index + 9))
273:           @index += 9
274:         else
275:           terminal_parse_failure("multipart")
276:           r2 = nil
277:         end
278:         if r2
279:           r0 = r2
280:         else
281:           r3 = _nt_extension_token
282:           if r3
283:             r0 = r3
284:           else
285:             @index = i0
286:             r0 = nil
287:           end
288:         end
289:       end
290: 
291:       node_cache[:composite_type][start_index] = r0
292: 
293:       r0
294:     end
_nt_content_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 52
 52:     def _nt_content_type
 53:       start_index = index
 54:       if node_cache[:content_type].has_key?(index)
 55:         cached = node_cache[:content_type][index]
 56:         if cached
 57:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
 58:           @index = cached.interval.end
 59:         end
 60:         return cached
 61:       end
 62: 
 63:       i0, s0 = index, []
 64:       r1 = _nt_main_type
 65:       s0 << r1
 66:       if r1
 67:         if has_terminal?("/", false, index)
 68:           r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
 69:           @index += 1
 70:         else
 71:           terminal_parse_failure("/")
 72:           r2 = nil
 73:         end
 74:         s0 << r2
 75:         if r2
 76:           r3 = _nt_sub_type
 77:           s0 << r3
 78:           if r3
 79:             s4, i4 = [], index
 80:             loop do
 81:               i5, s5 = index, []
 82:               r6 = _nt_CFWS
 83:               s5 << r6
 84:               if r6
 85:                 if has_terminal?(";", false, index)
 86:                   r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
 87:                   @index += 1
 88:                 else
 89:                   terminal_parse_failure(";")
 90:                   r8 = nil
 91:                 end
 92:                 if r8
 93:                   r7 = r8
 94:                 else
 95:                   r7 = instantiate_node(SyntaxNode,input, index...index)
 96:                 end
 97:                 s5 << r7
 98:                 if r7
 99:                   r9 = _nt_parameter
100:                   s5 << r9
101:                   if r9
102:                     r10 = _nt_CFWS
103:                     s5 << r10
104:                   end
105:                 end
106:               end
107:               if s5.last
108:                 r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
109:                 r5.extend(ContentType0)
110:               else
111:                 @index = i5
112:                 r5 = nil
113:               end
114:               if r5
115:                 s4 << r5
116:               else
117:                 break
118:               end
119:             end
120:             r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
121:             s0 << r4
122:           end
123:         end
124:       end
125:       if s0.last
126:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
127:         r0.extend(ContentType1)
128:         r0.extend(ContentType2)
129:       else
130:         @index = i0
131:         r0 = nil
132:       end
133: 
134:       node_cache[:content_type][start_index] = r0
135: 
136:       r0
137:     end
_nt_discrete_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 169
169:     def _nt_discrete_type
170:       start_index = index
171:       if node_cache[:discrete_type].has_key?(index)
172:         cached = node_cache[:discrete_type][index]
173:         if cached
174:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
175:           @index = cached.interval.end
176:         end
177:         return cached
178:       end
179: 
180:       i0 = index
181:       if has_terminal?("text", false, index)
182:         r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
183:         @index += 4
184:       else
185:         terminal_parse_failure("text")
186:         r1 = nil
187:       end
188:       if r1
189:         r0 = r1
190:       else
191:         if has_terminal?("image", false, index)
192:           r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
193:           @index += 5
194:         else
195:           terminal_parse_failure("image")
196:           r2 = nil
197:         end
198:         if r2
199:           r0 = r2
200:         else
201:           if has_terminal?("audio", false, index)
202:             r3 = instantiate_node(SyntaxNode,input, index...(index + 5))
203:             @index += 5
204:           else
205:             terminal_parse_failure("audio")
206:             r3 = nil
207:           end
208:           if r3
209:             r0 = r3
210:           else
211:             if has_terminal?("video", false, index)
212:               r4 = instantiate_node(SyntaxNode,input, index...(index + 5))
213:               @index += 5
214:             else
215:               terminal_parse_failure("video")
216:               r4 = nil
217:             end
218:             if r4
219:               r0 = r4
220:             else
221:               if has_terminal?("application", false, index)
222:                 r5 = instantiate_node(SyntaxNode,input, index...(index + 11))
223:                 @index += 11
224:               else
225:                 terminal_parse_failure("application")
226:                 r5 = nil
227:               end
228:               if r5
229:                 r0 = r5
230:               else
231:                 r6 = _nt_extension_token
232:                 if r6
233:                   r0 = r6
234:                 else
235:                   @index = i0
236:                   r0 = nil
237:                 end
238:               end
239:             end
240:           end
241:         end
242:       end
243: 
244:       node_cache[:discrete_type][start_index] = r0
245: 
246:       r0
247:     end
_nt_extension_token() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 296
296:     def _nt_extension_token
297:       start_index = index
298:       if node_cache[:extension_token].has_key?(index)
299:         cached = node_cache[:extension_token][index]
300:         if cached
301:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
302:           @index = cached.interval.end
303:         end
304:         return cached
305:       end
306: 
307:       i0 = index
308:       r1 = _nt_ietf_token
309:       if r1
310:         r0 = r1
311:       else
312:         r2 = _nt_custom_x_token
313:         if r2
314:           r0 = r2
315:         else
316:           @index = i0
317:           r0 = nil
318:         end
319:       end
320: 
321:       node_cache[:extension_token][start_index] = r0
322: 
323:       r0
324:     end
_nt_main_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 139
139:     def _nt_main_type
140:       start_index = index
141:       if node_cache[:main_type].has_key?(index)
142:         cached = node_cache[:main_type][index]
143:         if cached
144:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
145:           @index = cached.interval.end
146:         end
147:         return cached
148:       end
149: 
150:       i0 = index
151:       r1 = _nt_discrete_type
152:       if r1
153:         r0 = r1
154:       else
155:         r2 = _nt_composite_type
156:         if r2
157:           r0 = r2
158:         else
159:           @index = i0
160:           r0 = nil
161:         end
162:       end
163: 
164:       node_cache[:main_type][start_index] = r0
165: 
166:       r0
167:     end
_nt_parameter() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 373
373:     def _nt_parameter
374:       start_index = index
375:       if node_cache[:parameter].has_key?(index)
376:         cached = node_cache[:parameter][index]
377:         if cached
378:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
379:           @index = cached.interval.end
380:         end
381:         return cached
382:       end
383: 
384:       i0, s0 = index, []
385:       r2 = _nt_CFWS
386:       if r2
387:         r1 = r2
388:       else
389:         r1 = instantiate_node(SyntaxNode,input, index...index)
390:       end
391:       s0 << r1
392:       if r1
393:         r3 = _nt_attribute
394:         s0 << r3
395:         if r3
396:           if has_terminal?("=", false, index)
397:             r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
398:             @index += 1
399:           else
400:             terminal_parse_failure("=")
401:             r4 = nil
402:           end
403:           s0 << r4
404:           if r4
405:             r5 = _nt_value
406:             s0 << r5
407:             if r5
408:               r7 = _nt_CFWS
409:               if r7
410:                 r6 = r7
411:               else
412:                 r6 = instantiate_node(SyntaxNode,input, index...index)
413:               end
414:               s0 << r6
415:             end
416:           end
417:         end
418:       end
419:       if s0.last
420:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
421:         r0.extend(Parameter0)
422:         r0.extend(Parameter1)
423:       else
424:         @index = i0
425:         r0 = nil
426:       end
427: 
428:       node_cache[:parameter][start_index] = r0
429: 
430:       r0
431:     end
_nt_sub_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 326
326:     def _nt_sub_type
327:       start_index = index
328:       if node_cache[:sub_type].has_key?(index)
329:         cached = node_cache[:sub_type][index]
330:         if cached
331:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
332:           @index = cached.interval.end
333:         end
334:         return cached
335:       end
336: 
337:       i0 = index
338:       r1 = _nt_extension_token
339:       if r1
340:         r0 = r1
341:       else
342:         r2 = _nt_iana_token
343:         if r2
344:           r0 = r2
345:         else
346:           @index = i0
347:           r0 = nil
348:         end
349:       end
350: 
351:       node_cache[:sub_type][start_index] = r0
352: 
353:       r0
354:     end
_nt_value() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 471
471:     def _nt_value
472:       start_index = index
473:       if node_cache[:value].has_key?(index)
474:         cached = node_cache[:value][index]
475:         if cached
476:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
477:           @index = cached.interval.end
478:         end
479:         return cached
480:       end
481: 
482:       i0 = index
483:       r1 = _nt_quoted_string
484:       r1.extend(Value0)
485:       if r1
486:         r0 = r1
487:       else
488:         s2, i2 = [], index
489:         loop do
490:           i3 = index
491:           r4 = _nt_token
492:           if r4
493:             r3 = r4
494:           else
495:             if has_terminal?('\G[\x3d]', true, index)
496:               r5 = true
497:               @index += 1
498:             else
499:               r5 = nil
500:             end
501:             if r5
502:               r3 = r5
503:             else
504:               @index = i3
505:               r3 = nil
506:             end
507:           end
508:           if r3
509:             s2 << r3
510:           else
511:             break
512:           end
513:         end
514:         if s2.empty?
515:           @index = i2
516:           r2 = nil
517:         else
518:           r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
519:         end
520:         if r2
521:           r0 = r2
522:         else
523:           @index = i0
524:           r0 = nil
525:         end
526:       end
527: 
528:       node_cache[:value][start_index] = r0
529: 
530:       r0
531:     end
root() click to toggle source
    # File lib/mail/parsers/content_type.rb, line 8
 8:     def root
 9:       @root ||= :content_type
10:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.