メモアプリリファクタリング
writeメソッドについて
IO.write
IOクラスの特異メソッド
IO.write (Ruby 3.1 リファレンスマニュアル)
File.openした後に使えるwrite
IOクラスのインスタンスメソッドを継承している
IO#write (Ruby 3.1 リファレンスマニュアル)
詰まった事
下記のコードだと、この処理の後にメモを新規登録する際に、jsonファイルのデータ末尾の次の行からデータを書き込んでくれるので、データの取り出しがうまくできる。
File.open("memo.json", mode = "w"){|f|
json.each{|x|
f.write("#{x.to_json}\n")
}
}
下記のコードだと、この処理の後にメモを新規登録する際に、jsonファイルのデータ末尾が改行していない状態で書き込みしてしまい、取り出しがうまく出来なくなる。
IO.write('memo.json',json.map{|x|x.to_json}.join("\n"))
原因と解決
Joinで繋いだ部分にしか\n
が入っていない事が原因だった!
初歩的なミス😱
こういうのは寝て起きて、朝見ると、なぜこんなところで詰まったんだ😱となる。。。
下記の様にして解決!
IO.write('memo.json',json.map{|x| "#{x.to_json}\n"}.join )
writeメソッドの使い方
少し書き込むだけ、少し読み込むだけの場合には、IOクラスの特異メソッドで処理した方が早いと思った。
たくさんの処理がある場合にはFile.openしてブロック内で続けて処理するのが良さそう!
Git addについて
git add -u と git add -A と git add . の違い | note.nkmk.me
CSSについて
id属性
同じWebページ内でid属性の値が重複してはならない。
属性値(名前)の前に「#」(シャープ)をつけることで、CSSを指定できます。
class属性
同じWebページ内で同じclass属性の値を何度でも用いることができる。
属性値(名前)の前に「.」(ドット)をつけることで、CSSを指定できます。