week コマンドの続き
- ターミナルで使える色っぽいカレンダー - Qiita
- ライオンズカラーのカレンダーと termcolor モジュール - Qiita
- Tokyo2020 カレンダーと i18n モジュール - Qiita
--tokyo2020-gold オプション
東京オリンピックの金メダル獲得数は歴代最多27個だったそうだ。昨年作った --tokyo2020
オプションには、実はゴールドバージョンも用意してあった。
和暦表示
上の画像を見ればわかるように、2021 だけではなく「令和3」という年号が入っている。オリンピック前にこれを実装したのだが、リリースするのをすっかり忘れていた。
Date::Japanese::Era というモジュールを見つけたから試しに和暦を表示するようにしてみたのだが、これが存外に便利である。「今年は令和何年だったっけ?」と思ったら week
と打てばいい。デフォルトでは、1月と当月に暦年を表示する。
前回のオリンピックが開催された昭和39年は week 昭和39
, week 昭39
, week S39
などで表示できる。
平成元年は?
1989年か。だけど、1月はまだ昭和だよねという時は -P
オプションを付けると、すべての月に暦年を表示する。
1989年の1月7日に昭和天皇が崩御されているので、2月から平成表記になる。
--colordump
--colordump
というオプションを付けると、現在の配色をオプション形式で表示する。--tokyo2020-gold
はこうだ。24ビット指定と12ビット指定が混じっているが問題ない。画像は iTerm2 なので24ビットモードで表示されているが、Terminal.app などでは 6x6x6 の216色にマッピングされる。
これを編集すれば、自分で新しいデザインを作ることができるのでよかったどうぞ。
実際に色を見たければ、greple コマンドを使って、こんな風に表示することも可能だ。--cm
は --colormap
の省略形で色を指定するためのオプションだが、このように関数を指定することもできる。この例は、オプション指定を忘れたので、216色モードで表示されているはずだ。
Getopt::EX::Hashed
リリースが遅れたのは、これを作っていたからだ。コマンド行オプション処理のためのモジュールは数々あるが、定番の Getopt::Long から乗り換えようと思わせるものはなかった。だから、Getopt::EX は、Getopt::Long を前提に作られている。Moo と組み合わせて使うとなかなかイカしてる部分もあって一時期使ったが、その目的に使うには重厚すぎる。Getopt::EX::Hashed は、オプションの仕様定義と初期化を同時に行うためのもので、Getopt::Long をバックエンドにしているが、仕様を見通しよく記述できるようになっている。ここでは詳しく説明はしないので、興味のある方は week コマンドでの使用例を見て欲しい。
参照にはメソッドを使いながら、更新はハッシュを直接操作しているのが対称性に欠けてやや気持ち悪いかもしれないが、実用性はこの方が高いので、少しムズムズしながら使っている。
追記:その後 lvalue
を使ってメソッド呼び出しに対して代入することが可能になっている。
インストール
cpan で公開しているので、cpanm (cpanminus) を使ってインストールします。
cpanm App::week