mieki256's diary



2026/02/23(月) [n年前の日記]

#2 [ruby] 日付とRubyバージョンでファイル名を作って保存

Ruby の gem list を、日付とRUbyバージョンでファイル名を作ってテキスト保存するスクリプトをAI(Google Gemini)に作成してもらったのでメモ。

savegemlist.rb
dnum = Time.now.strftime('%Y%m%d')
vnum = RUBY_VERSION.delete('.')
filename = "#{dnum}_Ruby#{vnum}.txt"
filename_nover = "#{dnum}_Ruby#{vnum}_no-versions.txt"

File.write(filename, `gem list`)

gem_list_clean = `gem list`.gsub(/\s\(.*\)/, "")
File.write(filename_nover, gem_list_clean)

puts "Save : #{filename}"
puts "Save : #{filename_nover}"

このくらいのスクリプトならさっくり作成してもらえるなんて凄い時代になってきた…。しかも「コメントをつけて」とお願いすると細かく説明してくれる…。

# 1. 現在の日付を「YYYYMMDD」形式(例:20260224)で取得して変数dnumに代入
dnum = Time.now.strftime('%Y%m%d')

# 2. 実行中のRubyのバージョン(例:3.2.1)から「.」を取り除き(例:321)、変数vnumに代入
vnum = RUBY_VERSION.delete('.')

# 3. 保存するファイル名を生成(例:20260224_Ruby321.txt)
filename = "#{dnum}_Ruby#{vnum}.txt"

# 4. バージョン番号を含まない保存用ファイル名を生成(例:20260224_Ruby321_no-versions.txt)
filename_nover = "#{dnum}_Ruby#{vnum}_no-versions.txt"

# 5. バッククォート「` `」でシェルコマンド `gem list` を実行し、
#    その標準出力を filename に指定したファイルへ書き込む
File.write(filename, `gem list`)

# 6. `gem list` の結果から、正規表現を用いて「 (1.2.3)」のようなバージョン表記部分を
#    空文字に置換(削除)し、変数 gem_list_clean に代入
#    ※ \s は空白、\(.*\) は括弧で囲まれた任意の文字列にマッチ
gem_list_clean = `gem list`.gsub(/\s\(.*\)/, "")

# 7. 加工したクリーンなリストを filename_nover に指定したファイルへ書き込む
File.write(filename_nover, gem_list_clean)

# 8. 完了メッセージをコンソールに表示
puts "Save : #{filename}"
puts "Save : #{filename_nover}"

以上です。

過去ログ表示

Prev - 2026/02 -
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project