--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Overview
- !ruby/struct:SM::Flow::P 
  body: An RMail::StreamHandler documents the set of methods a RMail::StreamParser handler must implement. See RMail::StreamParser.parse. This is a low level interface to the RMail message parser.
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Order of Method Calls (Grammar)
- !ruby/struct:SM::Flow::P 
  body: Calls to the methods of this class follow a specific grammar, described informally below. The words in all caps are productions in the grammar, while the lower case words are method calls to this object.
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "MESSAGE:"
    body: "[ #mbox_from ] *( #header_field ) ( BODY / MULTIPART_BODY )"
  - !ruby/struct:SM::Flow::LI 
    label: "BODY:"
    body: "*body_begin *( #body_chunk ) #body_end"
  - !ruby/struct:SM::Flow::LI 
    label: "MULTIPART_BODY:"
    body: "#multipart_body_begin *( #preamble_chunk ) *( #part_begin MESSAGE #part_end) *( #epilogue_chunk ) #multipart_body_end"
  type: :NOTE
- !ruby/struct:SM::Flow::H 
  level: 1
  text: Order of Method Calls (English)
- !ruby/struct:SM::Flow::P 
  body: If the grammar above is not clear, here is a description in English.
- !ruby/struct:SM::Flow::P 
  body: "The parser begins calling #header_field, possibly calling #mbox_from for the first line. Then it determines if the message was a MIME multipart message."
- !ruby/struct:SM::Flow::P 
  body: "If the message is a not a MIME multipart, the parser calls #body_begin once, then #body_chunk any number of times, then #body_end."
- !ruby/struct:SM::Flow::P 
  body: "If the message header is a MIME multipart message, then #multipart_body_begin is called, followed by any number of calls to #preamble_chunk. Then for each part parsed, #part_begin is called, followed by a recursive set of calls described by the &quot;MESSAGE&quot; production above, and then #part_end. After all parts are parsed, any number of calls to #epilogue_chunk are followed by a single call to #multipart_body_end."
- !ruby/struct:SM::Flow::P 
  body: The recursive nature of MIME multipart messages is represented by the recursive invocation of the &quot;MESSAGE&quot; production in the grammar above.
constants: []

full_name: RMail::StreamHandler
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: body_begin
- !ruby/object:RI::MethodSummary 
  name: body_chunk
- !ruby/object:RI::MethodSummary 
  name: body_end
- !ruby/object:RI::MethodSummary 
  name: epilogue_chunk
- !ruby/object:RI::MethodSummary 
  name: header_field
- !ruby/object:RI::MethodSummary 
  name: mbox_from
- !ruby/object:RI::MethodSummary 
  name: multipart_body_begin
- !ruby/object:RI::MethodSummary 
  name: multipart_body_end
- !ruby/object:RI::MethodSummary 
  name: part_begin
- !ruby/object:RI::MethodSummary 
  name: part_end
- !ruby/object:RI::MethodSummary 
  name: preamble_chunk
name: StreamHandler
superclass: Object
