Class | RMail::Parser |
In: |
lib/rmail/parser.rb
lib/rmail/parser/multipart.rb lib/rmail/parser/pushbackreader.rb |
Parent: | Object |
The RMail::Parser class creates RMail::Message objects from Ruby IO objects or strings.
To parse from a string:
message = RMail::Parser.read(the_string)
To parse from an IO object:
message = File.open('my-message') { |f| RMail::Parser.read(f) }
You can also parse from STDIN, etc.
message = RMail::Parser.read(STDIN)
In all cases, the parser consumes all input.
chunk_size | [RW] | Change the chunk size used to read the message. This is useful mostly for testing. |
Creates a new parser. Messages of message_class will be created by the parser. By default, the parser will create RMail::Message objects.
# File lib/rmail/parser.rb, line 321 def initialize() @chunk_size = nil end
Parse a message from the IO object io and return a new message. The io object can also be a string. This is just shorthand for:
RMail::Parser.new.parse(io)
# File lib/rmail/parser.rb, line 344 def Parser.read(input) Parser.new.parse(input) end
Parse a message from the IO object io and return a new message. The io object can also be a string.
# File lib/rmail/parser.rb, line 327 def parse(input) handler = RMail::Parser::Handler.new parser = RMail::StreamParser.new(input, handler) parser.chunk_size = @chunk_size if @chunk_size parser.parse return handler.message end