Rubyコードフォーマッター
ガイド
Rubyコードフォーマッター
Ruby コードを貼り付け、すぐに標準的な Ruby スタイルにフォーマットします:2スペースインデント、一致した演算子のスペース、トリムされたトリーリングスペース、そして整ったブロック構造。フォーマットはすべてブラウザ内で実行され、あなたのコードはあなたのマシンに留まります。
使用方法
- Ruby ソースを入力エリアに貼り付け、またはクリック 例を試してみてください。 をクリックしてサンプルをロードできます。
- インデントサイズを選択します(2スペースはRubyコミュニティのデフォルトです)。
- トグル require / require_relative を並べ替えます インポートブロックをアルファベット順に並べ替えたい場合。
- トグル メソッド定義の間には空白行を挿入します クラスのボディをよりきれいにします。
- クリック 形式、結果をコピーまたはダウンロードします。
機能
- 標準的な Ruby スタイル – 2スペースインデント、タブなし、トリーリングスペースなし。
- オペレーターのスペース – 演算子の周りに一致したスペースを確保
=,=>、比較演算子および複合割り当て演算子。 - ブロック認識インデント – 認識
class,module,def,if,case,begin,do、およびマッチングend/}。 - ヘレドック安全 –
<<~,<<-、および裸のヘレドックボディは原文通りに保持され、マルチライン文字列がそのまま維持されます。 - マーカー形式認識 – 1行に続くトリーリング
if,unless,whileと、untilはブロック開けと見なされません。 - オプションの require 並べ替え – ファイルのトップにある
require/require_relativeブロックをアルファベット順に並べ替えます。 - オプションのメソッド間のスペース – 隣接するメソッド定義の間には読みやすさを考慮して空白行を挿入します。
- プライバシー第一 – すべてがブラウザ内で実行され、アップロードやログ記録なし。
よくある質問
-
なぜ2スペースインデントがRubyスタイルとされているのですか?
Rubyコミュニティは、Rubyスタイルガイドおよび元のRuboCopのデフォルトを通じて、2スペースインデントを早期に標準化しました。2スペースインデントは深層ネストされたブロック(イテレータ内のクロージャー、ネストされたクラス、case文のwhen分岐)を水平的にコンパクトに保ち、Rubyが短いメソッドと表現力のあるブロック構文を好む傾向と補完します。多くの人気のあるRubyプロジェクト、包括Railsもこの規則を採用しています。
-
do...end とカッコブロックの違いは?
機能的には、
do...endと{ ... }同じ構造を表す—メソッドに渡されたブロック—ですが、演算子の優先順位の違いにより、結合方法が異なります。do...endは緩やかに結合(arr.each do |x| ... end.sizeが.sizeの結果に適用されるのではなく、ブロックの返り値に適用されます)each一方、{ ... }は最近のメソッド呼び出しに密接に結合されます。スタイルガイドでは、1行ブロックにはカッコを、do...endに多行ブロックを割り当てます。 -
Rubyのifおよびunlessのマーカー形式はどのように機能しますか?
Rubyでは、ステートメントの後に条件を置くことができます、たとえば
return nil if value.nil?。これは マーカー形式と呼ばれ、文法的には1つの式であり、ブロックを必要としません。マーカー形式は短いガード文を自然に読むことができますが、複雑な条件では、多行のendブロックの方が明確です。if何がヘレドックであり、なぜスイッグヘレドックが好まれるのですか? -
ハーディックとは何ですか?そして、波線付きハーディックが好まれる理由は何ですか?
ヘレドックは、
<<TAGで開き、閉じるタグが1行にのみTAGを含む行で閉じられます。普通の<<TAGは閉じるタグが列0に開始されなければならないため、インデントされたコードと衝突します。<<-TAGは閉じるタグをインデントできるようにし、すべてのボディ行を原文通りに保持します。<<~TAG(スイッグヘレドック、Ruby 2.3で追加) は、すべてのボディ行の最小共通インデントを削除し、その結果、文字列が周囲のコードインデントと一致し、結果にスペースを漏らさないようにします。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
