Sha256: c9731e80e080865fcc909a834df4553a067cf50ae0d1e000611b61dcce952367
Contents?: true
Size: 1009 Bytes
Versions: 14
Compression:
Stored size: 1009 Bytes
Contents
module Mail::Parsers class MessageIdsParser def parse(s) if s.blank? return MessageIdsStruct.new end message_ids = MessageIdsStruct.new([]) actions, error = Ragel.parse(:message_ids, s) if error raise Mail::Field::ParseError.new(Mail::MessageIdsElement, s, error) end msg_id_s = nil actions.each_slice(2) do |action_id, p| action = Mail::Parsers::Ragel::ACTIONS[action_id] case action # Message Ids when :msg_id_s then msg_id_s = p when :msg_id_e message_ids.message_ids << s[msg_id_s..(p-1)].rstrip when :domain_e, :domain_s, :local_dot_atom_e, :local_dot_atom_pre_comment_e, :local_dot_atom_pre_comment_s, :local_dot_atom_s # ignored actions else raise Mail::Field::ParseError.new(Mail::MessageIdsElement, s, "Failed to process unknown action: #{action}") end end message_ids end end end
Version data entries
14 entries across 13 versions & 7 rubygems