diary

I like Hatena Star with a text selection.

2020-08-05

nginx実践入門 WEB+DB PRESS plus

nginx実践入門 WEB+DB PRESS plus

突如実戦が発生したのでnginx実戦入門を買った。

gihyo dpで買うにはpaypalのアカウントが必要で、久しぶりにpaypalにログインしてみたら使い回しパスワードだったり多要素認証の設定がなかったり住所が古かったりしたので色々更新した。


gemのバージョンを指定する時には理由をコメントで書くよう促すgoodcheckのルールを書いた。……のだけど、Bundler/GemComment copの存在を知ったので無用の長物となった。

……のだけど、Bundler/GemCommentが末尾のコメントを理解しないのでパッチを書いた。まだPRにはしていないのでそのうちPRにする。

rules:
  - id: pin-gem-with-reason
    message: Gemのバージョンを固定したり、forkしたgemを使う場合には、その理由をコメントで書いてください。
    pattern:
      - regexp: 'gem [''"].+[''"],\s*[''"].+[''"][^#\n]*$'
      - regexp: 'gem [''"].+[''"],.+git:[^#\n]*$'
    glob:
      - 'Gemfile'
    fail:
      - 'gem "foo", "1.0.0"'
      - "gem 'foo', '1.0.0'"
      - "gem 'foo', git: 'https://github.com/foo/foo.git'"
    pass:
      - 'gem "foo"'
      - 'gem "foo", "1.0.0" # reason'
      - "gem 'foo', git: 'https://github.com/foo/foo.git' # reason"
    justification:
      - gitリポジトリを指定しているけど、forkしたgemではない場合
      - '> 4.0 のように、特定のバージョン以上を指定している場合'

YAMLでsingle quoteをエスケープするにはsingle quoteを2回続けると良いことを知った。

最初コメントがないことを示すために[^#]*$と書いていたのだけど、これだと[^#]は改行文字も含むので意図しないパターンになってしまっていた。 なので[^#\n]として改行文字も含まないようにした。