Prevent NoMethodError/NameError from hanging the server.

The fix is to work around this bug: http://bugs.ruby-lang.org/issues/4521 where Ruby will call to_s/inspect while printing exception messages, which can take a long time (minutes at full CPU) if the object is huge or has cyclic references, like Middleman::Application does. Defining #to_s short-circuits that. This fixes #370.
This commit is contained in:
Ben Hollis 2012-07-02 23:39:30 -07:00
parent a5a2e1568b
commit 1229a9991a

View file

@ -217,6 +217,14 @@ module Middleman
logging
end
# Work around this bug: http://bugs.ruby-lang.org/issues/4521
# where Ruby will call to_s/inspect while printing exception
# messages, which can take a long time (minutes at full CPU)
# if the object is huge or has cyclic references, like this.
def to_s
"the Middleman application context"
end
# Expand a path to include the index file if it's a directory
#
# @private