Ruby1.9.3でpryが動かないときは
Ubuntu 14.04のシステムのRubyが1.9.3で、この上でpryを使っていて引っかかった。
> pry 14:44:58 /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/globals.rb:21:in `log': /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/logging.rb:13: invalid multibyte char (US-ASCII) (SyntaxError) /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/logging.rb:13: invalid multibyte char (US-ASCII) /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/logging.rb:13: syntax error, unexpected $end, expecting keyword_end PROGRESS_INDICATORS = %w(⣷ ⣯ ⣟ ⡿ ⢿ ⣻ ⣽ ⣾) ^ from /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/serializers/yardoc_serializer.rb:104:in `deserialize' from /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/registry_store.rb:295:in `load_root' from /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/registry_store.rb:253:in `load_yardoc' from /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/registry_store.rb:127:in `load' from /var/lib/gems/1.9.1/gems/yard-0.9.9/lib/yard/registry.rb:132:in `load_yardoc' from /var/lib/gems/1.9.1/gems/pry-doc-0.10.0/lib/pry-doc.rb:16:in `load_yardoc' from /var/lib/gems/1.9.1/gems/pry-doc-0.10.0/lib/pry-doc.rb:20:in `<top (required)>' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require' from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/plugins.rb:49:in `activate!' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/plugins.rb:93:in `block in load_plugins' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/plugins.rb:92:in `each' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/plugins.rb:92:in `load_plugins' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/pry_class.rb:127:in `initial_session_setup' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/cli.rb:206:in `block in <top (required)>' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/cli.rb:83:in `call' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/cli.rb:83:in `block in parse_options' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/cli.rb:83:in `each' from /var/lib/gems/1.9.1/gems/pry-0.10.4/lib/pry/cli.rb:83:in `parse_options' from /var/lib/gems/1.9.1/gems/pry-0.10.4/bin/pry:16:in `<top (required)>' from /usr/local/bin/pry:23:in `load' from /usr/local/bin/pry:23:in `<main>'
yardでエンコーディングまわりのエラーが出ている。これはしばらくpryを使ったあとでインストールしたpry-docプラグインが連れてきたyardの悪さだった。
> gem uninstall pry-doc yard
とすればpryが復活する。(pry-docは使えないが)
もちろん最新版 Ruby 2.4.1(2017/07/07現在)を使うのが一番いいが、1.9.3でなければならないときもある。