#26: leaf.el インストール、Ruby チェリー本第 4 章の続き

やったこと(Done)

$ emacs --version
GNU Emacs 26.3
$ emacs ~/.emacs.d/init.el

leaf.el のインストールコードをそのまま貼り付けて保存、バイトコンパイルする。

$ cd ~/.emacs.d/
$ emacs --batch -f batch-byte-compile init.el

# もう 1 回実行して warning が出ないことを確認
$ emacs --batch -f batch-byte-compile init.el

とりあえず color theme を設定する。

(load-theme 'wombat t)

Ruby チェリー本

第 4 章を読み進める。コード片は REPL で試しつつ、カラーコード変換プログラムを書く。

テストは Rake から実行し、YARD でドキュメントも書くことにした。

基本的に RuboCop に従っているけれど、以下のようなブロックを &: を使った記法で書くように警告されるのは何だかなぁと感じる。好きに書かせてほしい。そのうち慣れるのかもしれないけれども。

  hex_str.scan(/\w\w/).map do |s|
    s.hex
  end
  hex_str.scan(/\w\w/).map(&:hex)

あと書籍ではリファクタリングの上級編として以下のコードを挙げている。

def to_ints(hex)
  hex.scan(/\w\w/).map(&:hex)
end

上記コードに続けて、「短いコード、簡潔なコードが善であり追求すべき」という意味合いの文章が書かれているのだけれど、それは本当に正しいのかなと少し疑問に思った。

例えば入力値が不正な値ではないかチェックするとか、そういうことを考えるとこの書き方は維持しにくいのではないだろうか。不正な入力値が来ることはない、という前提に依存した「短いコード、簡潔なコード」を目指す努力は必要なのかしらん。

(もし多くの Rubyist がそういう考え方に基づいてコードを書いているのだとしたら、それらのコードを読めるようになる必要があり、上記の努力は当然必要となる)

わかったこと(Fact)

  • leaf.el の作者さん曰く、init.el は分割しないのがトレンドとのこと。
  • Ruby では break が引数を取り、ループを抜ける際に値を返す。

参考文献(References)

Emacs

Ruby

その他

そのうちやること(Someday)

  • [ ] テスト用のディレクトリ、テストの雛形ファイルなどを Rake で生成したい。
  • [ ] RubyMine インストールしてみる?
  • [ ] Ruby を書くためのエディタの設定(Emacs
  • [ ] bash の設定ファイルに必要なエイリアスを追加する。