こちらとだいたい同じですが、自分なりにまとめておきます。
自分の中で何かが変われば日記の改訂をすると思います。
ソースコードの整形
インデント
インデント幅はスペース2つで、タブは使用しない。
空行
クラス間には空行を挿入。
クラス内の構造間にも空行を挿入。
行の折り返し
たくさんあるメソッドの呼び出しではこのように書く。
this_is_method_call_with_many_argument( this_is_argument_no_1, this_is_argument_no_2, this_is_argument_no_3)
空白
カンマの後に空白を入れる。
演算子の左右に空白を入れる。
メソッドチェインで使用するときの'{'と'}'の前には空白を入れる。
コメント
分かりきったコメントはさける。
「何をするか」を書くのであって、「なぜするか」については書かない。
構文に関する規約
メソッド呼び出し
引数があれば括弧を付けるし、無ければ省略する。
ブロック
do...endを使用するが、メソッドチェインを使う場合は{...}を使用する。
条件分岐
基本的にはif...endを使用する。ただし、if !xのような場合はunless xを使用したほうが分かりやすい。
繰り返し
while...endやtimesをメインで使用し、forは使用しない。while !xのような場合はuntil xを使用したほうが分かりやすい。
命名規約
全般
- 原則として、単語の省略は行わない。
- スコープが狭いループ変数には、i, j, kという名前をこの順序で使 用する。
- スコープが狭い変数名には、クラス名を省略したものを使用してよい。 (例: eo = ExampleObject.new)
クラス・モジュール名
各単語の一文字目を大文字とし、'_'などの区切り文字は使用しない。
メソッド名
すべて小文字とし、単語の区切りに'_'を使用する。
真偽値を返すメソッド名は、後ろに'?'を付ける。
また、破壊的メソッドの場合は'!'を付ける。
定数名
すべて大文字とし、単語の区切りに'_'を使用する。
ファイル
すべて小文字とし、単語の区切りに'_'を使用する。