Emacs で Ruby を書ける環境を揃える

2016-10-31 11:11:01

Rubyの設定の手順と勉強の仕方。

Ruby

MacOSXには ruby が入っているが、2.0.0 は古いので、 rbenv を使っていく。

rbenv で適当なバージョンをインストールして、指定して、.bash_profile に追記して終わり。

$ which ruby
/Users/user/.rbenv/shims/ruby

yum でインストールするもの

順番に.

以下のパッケージがインストールされていれば、ruby-install できたが、 すでに入っているパッケージもあるので十分条件ではないはず。

ログ: zlib-devel が必要みたい.

installing bundle gems:       /home/yappy/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0 (build_info, cache, doc, extensions, gems, specifications)
/tmp/ruby-build.20161031223808.17897/ruby-2.2.0/lib/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- zlib (LoadError)

エディタ

エディタをVisual Studio Code使おうかと思ったけど、Emacs + Robe にする。

Robe はコードアシスタントでコードジャンプとかメソッド名とか見れる。 ここら辺は Slime と同じで C-c l でファイル読み込んで実行できるし、 M-. で関数定義へジャンプできる。

pry が必要なので、あらかじめ gem でインストールする。 M-x robe-start で補完が効くようになった。ここら辺は auto-complete 周りの設定も必要みたい。

irbで日本語でマルチバイトエラーが起こる

"あ".each_byte{|b| puts "%x" % b}

multibyte error が irb で出たので、inf-ruby の設定で -U を irb のコマンドラインオプションに足す。

参考

次のステップ

リファレンスマニュアルを読む

目次の制御構文まで流し読み程度。

rosscript も #! が使えない環境では ruby -S で書いてあることと同じことやってる。

話題はそれるけど、こんなのもあった。 Why do some scripts start with #! … ?

よくわかっていないところ

見直しが必要

Ruby Koans

チュートリアルで構文を勉強していく。Koansは日本語で、禅の公案のこと。 小さい問題を積み重ねて、知識を身につけていこうというスタイル。 Ruby Koansのページには、 The Little Lisperのスタイルにインスパイアされましたと書いている。

ところどころにどうしてか考えてねっていうポイントもあって面白い。 たとえば、about_constants.rb にある下のコメント

  # QUESTION: Now which has precedence: The constant in the lexical
  # scope, or the constant from the inheritance hierarchy?  Why is it
  # different than the previous answer?

こういう問題に対して、My answer is … のように考えて書いておく。

どうやって正しいことを確認するかというと、マニュアルを見たり、IRC/MLでたずねたりで解決する。 定数参照の優先順位に、答えが書いてある。