lsコマンド #18 メソッド名考えるの難しい! wcコマンドの課題つづき 8/13 日報
今日やる事
- lsコマンドのメソッド名を考える
勉強した事
attr_reader :opt, :files, :stat
の:stat
を消したら、こんなエラーが。。
(m・_・bp) 22:00 ~ % ruby ls.rb -lar Traceback (most recent call last): 1: from ls.rb:127:in `<main>' ls.rb:127:in `new': wrong number of arguments (given 1, expected 0) (ArgumentError)
なんでかなと思い、まだattr_readerとローカル変数とインスタンス変数がわかってないかなと、復習した。色々と変更したが、動かず。。。 途方にくれたが、原因はわかった!
attr_reader :opt, :files,
files,
のカンマが余分にあったからだ。。
LSコマンドのメソッド名考える
友人からメソッド名についてアドバイスを頂いた!
- メソッドの処理を日本語で書いてみる - その日本語を見て複数の役割があった時はメソッドを分割(これは今回考えなくて良いかと思います) - その日本語から、class名を主語、メソッド名が動詞となって意味が通じる英単語がパッと思いつけば、それに付けて、そうでなければ、作成した日本語をとりあえず、翻訳にかけます - 翻訳をかけて、あとはシソーラスを見て、なんか良さそうな英語が見つかったらそれを付けます(けど、そういう時ってちょっとまだ命名が気持ち悪かったりもします)
メソッドの処理を日本語で書いてみるのはとても大切かも!
直すメソッド名
- def generate
- def ordinary
- def pop
- def details_join
変更前のメソッド名の処理を日本語で書く!メソッド名の候補も書く!
def generate
- オプション
l
とa
となしの条件分岐 =>Use conditions.
Select Terms Choose
単純にselect
もいいかも!def ordinary
- オプションなしとオプション
r
の時のに使う。現在いるファイルやディレクトリの情報を表示させる。もっとも利用する。 =>Aligning general files
def pop
- オプション
a
の時に使う。すべてを表示させる。ファイル名の先頭にピリオドがあるファイルも表示する。先頭にピリオドがあるファイルはLinuxのシステムと結びつき、普段簡単には編集されたくない設定ファイルもある。 =>aligning_all_files
def details_join
- 分解したオプション
l
のを空の配列に入れてくっつけた。 =>connecting_details_information
wcコマンドの課題
こちらのサイトを参考にした。(前回私の書いた日報と重複します) Ruby's ARGF
ちょっと進捗あって嬉しい。
file_data = [] if ARGV.length > 0 ARGV.each do |filename| file_read = File.read(filename) file_data << file_read.count("\n").to_s.rjust(8) file_data << file_read.split(" ").size.to_s.rjust(8) file_data << file_read.bytesize.to_s.rjust(8) file_data << File.basename(filename).to_s.rjust(6) end else puts STDIN.read end p file_data # (m・_・bp) 19:40 ~/Desktop/vsnote2.0/kadai/wc % ruby memo.rb ls.rb a.rb # [" 150", " 419", " 3696", " ls.rb", " 16", " 47", " 328", " a.rb"]
感想
- メソッド名決めるのがこんなに大変なんて。。と思いました😅
参考
lsコマンドの使い方と覚えたい15のオプション【Linuxコマンド集】