Rubyの勉強を始めました。

先日購入した本も届きRubyの勉強を始めましたので、ここにメモを残していこうかと。こうやってここに書いていくことを自分に対して義務づければ、きっと勉強が長続きするだろう、と。
まずは何はともあれRubyで書いたプログラムを実行してみます。
ターミナルを起動させ、

which ruby

と、打ち込んでreturnキー。すると

/usr/bin/ruby

という結果が得られます。これでRubyがどこにあるかが判明しました。
エディタ(ここではCarbonEmacsを使います)を立ち上げ、

#!/usr/bin/ruby

print "Hello World!!?n"

と古来から伝わる挨拶を表示するプログラムを書き、先頭におまじないを添え、適当な名前を付けて保存します。とりあえずunko.rbといつもの癖で付けそうになりましたが、ここは無難にhello.rbと付けました。
ターミナルでhello.rbを保存したディレクトリまで移動し、

./hello.rb

と打ち込み、returnキーで実行です。
が、何とかかんとかPermission deniedなんてメッセージが表示され実行できません。いつもの私ならここで面倒になってしまうのですが、ここに書かないといけないのでちゃんとメッセージを読んで対処対処。
Permissionというのはedbridgeに付属している電子辞書によると許可とかそういう意味らしいので、ああ、忘れていた。実行権限を付けていませんでした、てへっ。
ターミナルから

chmod u+x hello.rb

と打ち込み、hello.rbに対して実行権限を与えてやり、何か偉そうな言い草ですが、与えてやり、レッツリベンジ

./hello.rb
Hello World!!

と無事に実行完了でありますっ!
これでとりあえずバリバリと書いていく環境が整ったのですが、実行するためにいちいち

chmod u+x hello.rb

とするのは面倒極まりないので、CarbonEmacsの設定ファイルである.emacs.elに

(defun make-file-executable ()
  "Make the file of this buffer executable, when it is a script source."
  (save-restriction
    (widen)
    (if (string= "#!" (buffer-substring-no-properties 1 (min 3 (point-max))))
        (let ((name (buffer-file-name)))
          (or (equal ?. (string-to-char (file-name-nondirectory name)))
              (let ((mode (file-modes name)))
                (set-file-modes name (logior mode (logand (/ mode 4) 73)))
                (message (concat "Wrote " name " (+x)"))))))))
(add-hook 'after-save-hook 'make-file-executable)

と書いておくと、#!で始まるファイルに自動で実行権限を付与してくれるので、便利なこと極まりなく、ご飯を食べるのが面倒からおなかが空いていても食べないことがたびたびあるくらいの私でも、勉強が続けていく可能性が高まるというものです。


Ruby プログラミング基礎講座

Ruby プログラミング基礎講座