2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

week コマンドの金メダル仕様と和暦表示

Last updated at Posted at 2021-08-17

スクリーンショット 2021-08-17 14.21.33.png

week コマンドの続き

--tokyo2020-gold オプション

東京オリンピックの金メダル獲得数は歴代最多27個だったそうだ。昨年作った --tokyo2020 オプションには、実はゴールドバージョンも用意してあった。

スクリーンショット 2021-08-15 18.02.46.png

和暦表示

上の画像を見ればわかるように、2021 だけではなく「令和3」という年号が入っている。オリンピック前にこれを実装したのだが、リリースするのをすっかり忘れていた。

Date::Japanese::Era というモジュールを見つけたから試しに和暦を表示するようにしてみたのだが、これが存外に便利である。「今年は令和何年だったっけ?」と思ったら week と打てばいい。デフォルトでは、1月と当月に暦年を表示する。

前回のオリンピックが開催された昭和39年は week 昭和39, week 昭39, week S39 などで表示できる。

スクリーンショット 2021-07-07 20.23.16.png

平成元年は?

スクリーンショット 2021-08-16 19.18.36.png

1989年か。だけど、1月はまだ昭和だよねという時は -P オプションを付けると、すべての月に暦年を表示する。

スクリーンショット 2021-08-17 8.16.40.png

1989年の1月7日に昭和天皇が崩御されているので、2月から平成表記になる。

--colordump

--colordump というオプションを付けると、現在の配色をオプション形式で表示する。--tokyo2020-gold はこうだ。24ビット指定と12ビット指定が混じっているが問題ない。画像は iTerm2 なので24ビットモードで表示されているが、Terminal.app などでは 6x6x6 の216色にマッピングされる。

スクリーンショット 2021-08-16 19.26.57.png

これを編集すれば、自分で新しいデザインを作ることができるのでよかったどうぞ。

実際に色を見たければ、greple コマンドを使って、こんな風に表示することも可能だ。--cm--colormap の省略形で色を指定するためのオプションだが、このように関数を指定することもできる。この例は、オプション指定を忘れたので、216色モードで表示されているはずだ。

スクリーンショット 2021-08-16 19.34.31.png

Getopt::EX::Hashed

リリースが遅れたのは、これを作っていたからだ。コマンド行オプション処理のためのモジュールは数々あるが、定番の Getopt::Long から乗り換えようと思わせるものはなかった。だから、Getopt::EX は、Getopt::Long を前提に作られている。Moo と組み合わせて使うとなかなかイカしてる部分もあって一時期使ったが、その目的に使うには重厚すぎる。Getopt::EX::Hashed は、オプションの仕様定義と初期化を同時に行うためのもので、Getopt::Long をバックエンドにしているが、仕様を見通しよく記述できるようになっている。ここでは詳しく説明はしないので、興味のある方は week コマンドでの使用例を見て欲しい。

参照にはメソッドを使いながら、更新はハッシュを直接操作しているのが対称性に欠けてやや気持ち悪いかもしれないが、実用性はこの方が高いので、少しムズムズしながら使っている。

追記:その後 lvalue を使ってメソッド呼び出しに対して代入することが可能になっている。

インストール

cpan で公開しているので、cpanm (cpanminus) を使ってインストールします。

cpanm App::week
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?