Vote #75634
完了MailHandler: Don't use String#respond_to?(:force_encoding) to differentiate between Ruby 1.8 and Ruby 1.9
0%
説明
In source:/trunk/app/models/mail_handler.rb@13413#L424, whether @String#force_encoding@ is defined is used to make a decision about @Mail::RubyVer@, which defines @pick_encoding@ on everything but Ruby 1.8.
This is dangerous as it couples knowledge about Ruby 1.8 (@String#force_encoding@ is not defined) with knowledge about the @Mail@ gem internals (@Mail::RubyVer.pick_encoding@ is not defined on 1.8), there is no guarantee that this will always be the case though.
The attached patch checks whether @Mail::RubyVer.pick_encoding@ is defined before using it instead of using the indirection through whether @String#force_encoding@ is defined or not.
journals
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Committed in trunk r13432, thanks.
Rails 4 dropped Ruby 1.8 support.
So, Rails 4 branch r13255 removed this check.
--------------------------------------------------------------------------------
Great, thanks!
--------------------------------------------------------------------------------
related_issues
relates,Closed,15785,Support more character encodings in incoming emails