[!NOTE] この記事はrfコマンド Advent Calendar 2025の24日目の記事です。 昨日はrfコマンドの実例: 空行区切りのログファイル(/var/log/apt/history.log)をパースするという記事でした。 rfコマンド Advent Calendarでは、私(buty4649)がOSSで開発しているrfコマンドの解説や推しポイント、便利な使い方を紹介していきます。
前回はこちら。 rfコマンドアドカレをやってきたが、その中で出たバグフィックスを中心にアップデートした。 しかし、いくつかのバグは直せなかったので次回…。
主な更新点
- Markdownテーブル出力の見た目を調整
- HashをSsv出力できるようにした
- Kernel#Ssvの追加
- -iでファイルに書き込む時に色付け用のエスケープシーケンスを出力しないようにした
- mruby-strftimeを追加
- mruby-onig-regexpにおけるstring_splitの高速化
Markdownテーブル出力の見た目を調整
to_tableでMarkdownテーブルに変換して出力した時の見た目が気になったので修正した。具体的には2点。 まず、すべての要素がセンタリングされていたのを左寄せにした。 そして、すべての列が同じ幅だったのを、それぞれの列の適切な幅になるようにした。
$ rf j -s to_table spec/fixtures/file/json/table_2d_array.json | Name | Age | |-------|-----| | Alice | 30 | | Bob | 25 | # 1.32.2ではセンタリングされて幅もすべて一緒だった $ mise exec rf@1.32.2 -- rf j -s to_table spec/fixtures/file/json/table_2d_array.json | Name | Age | | ----- | ----- | | Alice | 30 | | Bob | 25 |
HashをSsv出力できるようにした / Kernel#Ssvの追加
Ssvフォーマッタの改良で、Hashへの対応をして使いやすくしたのと、Kernel#Ssvを追加してよりタイプ数を減らす工夫をした。
-iでファイルに書き込む時に色付け用のエスケープシーケンスを出力しないようにした
rfコマンドが行なっている色付けの処理が、-iで指定したファイルにも適用されていたのを修正した。 意図せずエスケープシーケンスが出力されるとエディタによっては化けるので困る。
mruby-strftimeを追加
日付を加工するためにstrftimeを使えるようにする変更。今まで日付を扱ったことなかったので、strftimeがrfコマンドで使えないことに気が付いてなかった。
mruby-onig-regexpにおけるstring_splitの高速化
-Fオプションを指定したときに著しく処理速度が遅くなっていたのを修正した。 詳しくは先日の記事を読んで欲しい。
明日でアドカレは終わりです
12/1から始めたアドカレも明日で終わりです。長かったような早かったような。 明日はrfコマンドのこれまでとこれからについて書く予定です。