センスいいコードはAIのほう
150日目。
昨日チマチマ作ったrubyコードと生成AIが作るコードを比べてみようと、ChatGPT先輩にお願いして書いてもらった。
適当にウェブで調べたコードをベースに作ったものに比べてちゃんとセンスの良さそうなコードが出来上がった🙌
(これまんま貼り付けて問題ないだろうか?…jekyllの処理的に)
require 'date'
require 'fileutils'
# 今日の日付
today = Date.today
today_str = today.strftime('%Y-%m-%d')
# 基準日から今日までの日数
base_date = Date.new(2024, 7, 6)
dayN = (today - base_date).to_i
# ファイル名と中身
filename = "#{today_str}-day-#{dayN}.md"
content = <<~MARKDOWN
---
layout: post
title: (new post)
category: diary
---
#{dayN}日目。
(write here. *remember title too!*)
MARKDOWN
# 出力先ディレクトリ
output_dir = File.expand_path('~/projects/blog-jekyll/_posts/')
FileUtils.mkdir_p(output_dir) unless Dir.exist?(output_dir)
file_path = File.join(output_dir, filename)
# ファイルが存在する場合は終了
if File.exist?(file_path)
puts "ファイルが既に存在します: #{file_path}"
exit
end
# ファイル作成
File.write(file_path, content)
puts "ファイル生成完了: #{file_path}"
さすがChatGPT先輩。この程度の処理ならカンペキだな… 実際には次のような指示を出したあと、やり取りを重ねて微調整した。
rubyスクリプトを書いてほしいです。
- 今日の日付(today)を用意。形式は"YYYY-MM-DD"
- 2024/07/06から今日までの日数(dayN)を用意
- marddown用ファイルを生成。ファイル名形式は"{today}-day-{dayN}.md"。このファイルはjekyllの記事として使われる。
- ファイルの中身は冒頭にYAMLフロントマター。値は layout: post, title: (new post), category: diary の3行。
- 次の本文は、冒頭に「○日目。」の行。○はdayNで置換。
- できたファイルを別のフォルダに移動する。
output_dir を次の位置にしたいです ~/projects/blog-jekyll/_posts/
○日目。の行のあと、1行空けて「(write here. *remember title too!*)」を入れてほしい
ファイル移動時に同じファイル名が既に存在してたら上書きせずに終了してほしい
dayN が1日多いみたい。調整してくれる?
ある程度のコツはあるとはいえ、やり取りを通して意を汲んで調整してくれるの素敵。
というわけで今回からセンスの良いスクリプトのほうで日記テンプレが生成されましたとさ。