diff options
author | Yusuke Endoh <[email protected]> | 2021-10-27 11:25:58 +0900 |
---|---|---|
committer | git <[email protected]> | 2021-10-27 11:29:20 +0900 |
commit | 4c32fcb84f19a3821c25f7a01ac995af3826d83e (patch) | |
tree | 164a564543235807c9d291b4150c94d2ef1c2e71 | |
parent | 33844f3096ed15eb1568d6aa333d8040ec9f074a (diff) |
[ruby/error_highlight] Make the formatter mechanism support Ractor
Now the formatter configuration is per Ractor. DefaultFormatter is used
if not set.
DefaultFormatter#message_for is now a class method to allow sub-Ractors
to call the method.
https://github.com/ruby/error_highlight/commit/9fbaa8ab7c
-rw-r--r-- | lib/error_highlight/formatter.rb | 8 | ||||
-rw-r--r-- | test/error_highlight/test_error_highlight.rb | 4 |
2 files changed, 5 insertions, 7 deletions
diff --git a/lib/error_highlight/formatter.rb b/lib/error_highlight/formatter.rb index ce687fb2a2..20ca78d468 100644 --- a/lib/error_highlight/formatter.rb +++ b/lib/error_highlight/formatter.rb @@ -1,6 +1,6 @@ module ErrorHighlight class DefaultFormatter - def message_for(spot) + def self.message_for(spot) # currently only a one-line code snippet is supported if spot[:first_lineno] == spot[:last_lineno] indent = spot[:snippet][0...spot[:first_column]].gsub(/[^\t]/, " ") @@ -14,12 +14,10 @@ module ErrorHighlight end def self.formatter - @@formatter + Ractor.current[:__error_highlight_formatter__] || DefaultFormatter end def self.formatter=(formatter) - @@formatter = formatter + Ractor.current[:__error_highlight_formatter__] = formatter end - - self.formatter = DefaultFormatter.new end diff --git a/test/error_highlight/test_error_highlight.rb b/test/error_highlight/test_error_highlight.rb index 9fc14202b5..08036bca54 100644 --- a/test/error_highlight/test_error_highlight.rb +++ b/test/error_highlight/test_error_highlight.rb @@ -5,7 +5,7 @@ require "tempfile" class ErrorHighlightTest < Test::Unit::TestCase class DummyFormatter - def message_for(corrections) + def self.message_for(corrections) "" end end @@ -13,7 +13,7 @@ class ErrorHighlightTest < Test::Unit::TestCase def setup if defined?(DidYouMean) @did_you_mean_old_formatter = DidYouMean.formatter - DidYouMean.formatter = DummyFormatter.new + DidYouMean.formatter = DummyFormatter end end |