Reputation: 8827
The third line in my ruby script
# encoding: utf-8
require "mail"
results in the following error
/usr/local/share/gems1.9/gems/json-1.8.1/lib/json/pure/parser.rb:242:in `rescue in parse_string': Caught Encoding::CompatibilityError at '[{"content-type":"ap': incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string) (JSON::ParserError)
from /usr/local/share/gems1.9/gems/json-1.8.1/lib/json/pure/parser.rb:213:in `parse_string'
from /usr/local/share/gems1.9/gems/json-1.8.1/lib/json/pure/parser.rb:257:in `parse_value'
from /usr/local/share/gems1.9/gems/json-1.8.1/lib/json/pure/parser.rb:121:in `parse'
from /usr/local/share/gems1.9/gems/json-1.8.1/lib/json/common.rb:155:in `parse'
from /usr/local/share/gems1.9/gems/json-1.8.1/lib/json/common.rb:334:in `load'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types/loader.rb:210:in `load_from_json'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types/loader.rb:61:in `block in load_json'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types/loader.rb:60:in `each'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types/loader.rb:60:in `load_json'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types/loader.rb:87:in `load'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types.rb:280:in `load_default_mime_types'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types.rb:307:in `<class:Types>'
from /usr/local/share/gems1.9/gems/mime-types-2.3/lib/mime/types.rb:62:in `<top (required)>'
from /usr/local/share/ruby19/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby19/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/gems1.9/gems/mail-2.6.1/lib/mail.rb:9:in `<module:Mail>'
from /usr/local/share/gems1.9/gems/mail-2.6.1/lib/mail.rb:2:in `<top (required)>'
from /usr/local/share/ruby19/site_ruby/rubygems/core_ext/kernel_require.rb:135:in `require'
from /usr/local/share/ruby19/site_ruby/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
from /usr/local/share/ruby19/site_ruby/rubygems/core_ext/kernel_require.rb:144:in `require'
from Mailer.rb:3:in `<main>'
note this error only occurs in production on AWS with Ruby 1.9.3. In development with Ruby 2, it works fine.
Upvotes: 1
Views: 461
Reputation: 27855
Sorry, this is no solution, only an explanation why it works correct with ruby 2.0 but not with 1.9.3:
Since ruby 2.0 all scripts are utf-8-encoded (unless something else is defined)
What is Ruby 2.0.0
[...]
Language core features
[...]
- The UTF-8 default encoding, which make many magic comments omissible
Source: https://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/
In Ruby 1.9 UTF-8 is not the default, so there may be a encoding difference between your script in UTF-8 and the script you call.
Upvotes: 1
Reputation: 169
I solved this issue adding this to my gemfile:
gem 'oj'
gem 'oj_mimic_json'
then run bundle install
and try to run server again
Upvotes: 0