Closed asya81 closed 1 year ago
class Dir (Ruby 3.1 リファレンスマニュアル)
ディレクトリの操作を行うためのクラス
https://docs.ruby-lang.org/ja/latest/method/Dir/s/children.html
ディレクトリ path に含まれるファイルエントリ名のうち、 "." と ".." をのぞいた配列を返します。
https://docs.ruby-lang.org/ja/latest/method/Dir/s/each_child.html
ディレクトリ path の "." と ".." をのぞく各エントリを表す文字列を引数として、ブロックを評価します。
ブロックが与えられなかった場合、各エントリを文字列として保持する Enumerator オブジェクトを返します。
https://docs.ruby-lang.org/ja/latest/method/Dir/s/getwd.html
カレントディレクトリのフルパスを文字列で返します。
ワイルドカードの展開を行い、パターンにマッチするファイル名を文字列の配列として返します。パターンにマッチするファイルがない場合は空の配列を返します。
class Array (Ruby 3.1 リファレンスマニュアル)
配列クラスです。配列は任意の Ruby オブジェクトを要素として持つことができます。
ファイル名(String)を要素として持つ配列を使うと良さそう。 ファイル名の表示の縦横を転換させるということは、行列の転置(transpose)をすると良さそう。 ちょうど良さそうなメソッドがあった。 👇
https://docs.ruby-lang.org/ja/latest/method/Array/i/transpose.html
https://docs.ruby-lang.org/ja/latest/method/Array/i/join.html
出力用にタブ文字を入れたり、配列から文字列に変換する時に使えそう。
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/each_slice.html
ファイル名を行の数、列の数に応じて並べる時に使えそう
Enumerator#with_index (Ruby 3.1 リファレンスマニュアル)
生成時のパラメータに従って、要素にインデックスを添えて繰り返します。インデックスは offset から始まります。
1始まりの繰り返し処理をしたい場合に使えそう。
Enumerable#max_by (Ruby 3.1 リファレンスマニュアル)
各要素を順番にブロックに渡して実行し、その評価結果を <=> で比較して、最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。
ファイル名の文字数が最大のものを取得するために使えそう。
仕様を満たすために必要な機能の洗い出しとRubyでの実現方法(どのクラス、モジュール、メソッドを使うか?)を調査する。