Skip to content

Commit

Permalink
Shush parser warnings without using an unreliable autoload
Browse files Browse the repository at this point in the history
We already explicitly require parsers from message elements,
so drop the toplevel autoload and move warning suppression
into the parsers themselves.

Fixes mikel#1162
  • Loading branch information
jeremy committed Nov 2, 2017
1 parent 322ba78 commit 7ef5694
Show file tree
Hide file tree
Showing 26 changed files with 332 additions and 187 deletions.
2 changes: 0 additions & 2 deletions lib/mail.rb
Expand Up @@ -68,8 +68,6 @@ def self.eager_autoload!

require 'mail/envelope'

register_autoload :Parsers, "mail/parsers"

# Autoload header field elements and transfer encodings.
require 'mail/elements'
require 'mail/encodings'
Expand Down
28 changes: 11 additions & 17 deletions lib/mail/parsers.rb
@@ -1,19 +1,13 @@
# frozen_string_literal: true
# Ragel-generated parsers are full of known warnings. Suppress them.
begin
orig, $VERBOSE = $VERBOSE, nil

require 'mail/parsers/address_lists_parser'
require 'mail/parsers/content_disposition_parser'
require 'mail/parsers/content_location_parser'
require 'mail/parsers/content_transfer_encoding_parser'
require 'mail/parsers/content_type_parser'
require 'mail/parsers/date_time_parser'
require 'mail/parsers/envelope_from_parser'
require 'mail/parsers/message_ids_parser'
require 'mail/parsers/mime_version_parser'
require 'mail/parsers/phrase_lists_parser'
require 'mail/parsers/received_parser'
ensure
$VERBOSE = orig
end
require 'mail/parsers/address_lists_parser'
require 'mail/parsers/content_disposition_parser'
require 'mail/parsers/content_location_parser'
require 'mail/parsers/content_transfer_encoding_parser'
require 'mail/parsers/content_type_parser'
require 'mail/parsers/date_time_parser'
require 'mail/parsers/envelope_from_parser'
require 'mail/parsers/message_ids_parser'
require 'mail/parsers/mime_version_parser'
require 'mail/parsers/phrase_lists_parser'
require 'mail/parsers/received_parser'
7 changes: 7 additions & 0 deletions lib/mail/parsers/address_lists_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -33205,3 +33208,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/address_lists_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
machine address_lists;
alphtype int;
Expand Down Expand Up @@ -170,3 +173,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_disposition_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -899,3 +902,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_disposition_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
machine content_disposition;
alphtype int;
Expand Down Expand Up @@ -80,3 +83,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_location_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -811,3 +814,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_location_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
# RFC 2557 Content-Location
# https://tools.ietf.org/html/rfc2557#section-4.1
Expand Down Expand Up @@ -69,3 +72,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_transfer_encoding_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -520,3 +523,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_transfer_encoding_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
machine content_transfer_encoding;
alphtype int;
Expand Down Expand Up @@ -62,3 +65,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_type_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -1043,3 +1046,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/content_type_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
machine content_type;
alphtype int;
Expand Down Expand Up @@ -81,3 +84,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/date_time_parser.rb
Expand Up @@ -3,6 +3,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil




Expand Down Expand Up @@ -884,3 +887,7 @@ def self.parse(data)
end
end
end

ensure
$VERBOSE = original_verbose
end
7 changes: 7 additions & 0 deletions lib/mail/parsers/date_time_parser.rl
Expand Up @@ -2,6 +2,9 @@
require 'mail/utilities'
require 'mail/parser_tools'

begin
original_verbose, $VERBOSE = $VERBOSE, nil

%%{
machine date_time;
alphtype int;
Expand Down Expand Up @@ -60,3 +63,7 @@ module Mail::Parsers
end
end
end

ensure
$VERBOSE = original_verbose
end

0 comments on commit 7ef5694

Please sign in to comment.