There's an echo in my head

日々のメモ。

Rails 5.x に更新する際に rails_kwargs_testing gem を使ったら便利だった

Rails 4.x で動いている社内ツールを Rails 5.x に更新する作業を最近やっていて、コントローラ・リクエスト周りのテストの書き換えに rails_kwargs_testing gem が便利だったのでメモ。

ざっくり書くと、これを使うと Rails 5.x 用のテストコードに寄せた状態で Rails 4.x 上でテストを実行できるようになるので、 BUNDLE_GEMFILERails 4.x と 5.x 用の Gemfile を指定することで両方を CI で走らせることが容易になる。詳細は作者である r7kamura さんのブログに書かれているので、そちらを参照してもらいたい。

r7kamura.com

rspec の場合の tips として、テストファイルごとの describe ブロックで prepend するのではなく、 controller spec や request spec で指定されている :type メタデータを使うことでまとめて prepend することができる。

# spec/rails_helper.rb や spec/supports/rails_kwargs_testing.rb みたいなファイル
if defined?(RailsKwargsTesting)
  RSpec.configure do |config|
    config.prepend RailsKwargsTesting::ControllerMethods, type: :controller
    config.prepend RailsKwargsTesting::RequestMethods, type: :request
  end
end

Minitest を使っている場合も、ちょっと手間だけど、 ActionController::TestCase を継承した共通のクラスを介することで同じようにまとめて対応することができる。こうしておけば、あとから rails_kwargs_testing gem を完全に消すことになったときにも手間が少ない。

なお、上記の記事で紹介されている rails5-spec-converter gem を使うとテストコードの一括書き換えのもできて便利。

middleman で netlify のPretty URLs 用に /_headers を生成する方法

Pretty URL (/blog/recent みたいなやつ)なページを生成してそのまま netlify にアップロードするだけだと、そのページにアクセスしたときに Content-Type: text/plain で返ってきてしまい、HTMLとしてレンダリングしてくれないという課題がある。これには、 /_headers というファイルでページごとのレスポンスヘッダを設定することで対応できる。

# /_headers
/blog/recent
    Content-Type: text/html

ただ、 middleman だと、名前が _ から始まるファイルは partial template として扱われてしまうのと、デフォルトだと拡張子無しのページを生成することができないのとで、この /_headers ファイルを生成するためにひと工夫必要になる。

具体的には次のように proxy を指定して適当なファイル(ここでは source/netlify_headers.txt.erb とする)を /_headers として生成するだけ。

# config.rb
proxy '/_headers', '/netlify_headers.txt', layout: false, ignore: true

ここで書いている ignore: true オプションは、 proxy 先の /netlify_headers.txt は生成しないことを指定している。

そして、 source/netlify_headers.txt.erb には前述したような /_headers に必要な記述をしておく。もしページ全てが対象なら sitemap を使って列挙すると良い。

<%# source/netlify_headers.txt.erb %>
<%- (sitemap.resources.map(&:url) - %w(/_headers)).each do |url| -%>
<%= url %>
  Content-Type: text/html
<%- end -%>

参考

Homecomings / PET MILK @恵比寿LIQUIDROOM

homecomings.jp

よかった…本当によかった…。

I WANT YOU BACKが一番好きです。

今回のタイトルになったというスチュアート・ダイベックの「シカゴ育ち」を読んでいるけど、街角の風景の一部を濃厚に切り取ったような短編で、こちらも良い。

セットリスト

  1. Songbirds
  2. Hull Down
  3. Parks
  4. PLAYYARD SYMPHONY
  5. Wonder Wander
  6. HURTS
  7. Smoke
  8. ANOTHER NEW YEAR
  9. So Far
  10. Moving Day Part1
  11. Drop
  12. WINTER BARGAIN
  13. LIVING LIFE (Daniel Johnston)
  14. WELCOME TO MY ROOM
  15. Continue
  16. Torch Song
  17. BUTTERSAND
  18. LIGHTS
  19. Blue Hour
  20. Cakes

アンコール

  1. GREAT ESCAPE
  2. Pedal
  3. I WANT YOU BACK

ダブルアンコール

  1. Whale Living

ハンバートハンバート / ハンバート家の平日 2019 Final

よかった…よかったんだけど、寝不足による夢うつつな状態で見てしまって勿体無いことした…。

家族連れで来ている人が多くて、そのためか途中休憩があった。

セットリスト

  1. ハイホー
  2. がんばれ兄ちゃん
  3. おじさんと酒
  4. まぶしい人
  5. 透明人間
  6. 鬼が来た
  7. バビロン
  8. ぶらんぶらん
  9. やさしい気持ち
  10. 長いこと待っていたんだ
  11. おなじ話
  12. ひなぎく
  13. 小さな声
  14. 邂逅
  15. ぼくのお日様
  16. 23時59分
  17. おいらの船
  18. ホンマツテントウムシ~ハイホー

アンコール

  1. Farewell song
  2. 喪に服す時

:memo: https://www.livefans.jp/events/1113702 より引用

NANA-IRO ELECTRIC TOUR 2019 @横浜アリーナ

https://www.nana-iroelectric.com/

ELLEGARDEN

フジロックぶり。

セットリスト

  1. ジターバグ
  2. Surfrider Association
  3. Fire Cracker
  4. 風の日
  5. No.13
  6. Supernova
  7. Salamander
  8. Space Sonic
  9. Opening
  10. 虹 w/ Gotch
  11. Make A Wish
  12. スターフィッシュ

:memo: https://www.livefans.jp/events/1162974より引用

ストレイテナー

数年前にRIJFで見て以来。1曲めのMelodic Stormが大好きなので、いきなり歌ってくれたのは本当に嬉しかった。この日以来、テナーを聴くことが増えた。

セットリスト

  1. Melodic Storm
  2. 冬の太陽
  3. Braver
  4. REMINDER
  5. 灯り
  6. スパイラル
  7. 吉祥寺
  8. シーグラス
  9. ROCKSTEADY w/ 細美武士

:memo: https://www.yawarakai.com/28149より引用

ASIAN KUNG-FU GENERATION

セットリスト

  1. クロックワーク
  2. 君という花
  3. リライト
  4. Easter / 復活祭
  5. 廃墟の記憶 w/ ホリエアツシ
  6. Re:Re:
  7. スタンダード
  8. ボーイズ&ガールズ

アンコール

  1. FADE TO BLACK ART-SCHOOL cover
  2. 遥か彼方 w/ ホリエアツシ, 細美武士

:memo: https://www.yawarakai.com/28149より引用

イギリス旅行のついでにシャッター音の鳴らないiPhone 11 Proを買ってきた

先日イギリスひとり旅*1に行ってきた。そのついでにロンドンのApple StoreSIMフリーiPhone 11 Proを買ってきた。

店頭でのやり取りや、tax refundの流れについては「海外旅行のついでにシャッター音の鳴らないiPhoneを購入する方法」を参考にした。

機能的な部分についてざっくりまとめると、

  • 国内でSoftbankのSIMを入れていてもシャッター音、録画の開始音は鳴らない
    • ただしサイレントモードのみ
  • 電源アダプタがイギリス向けのBF型(三本足)なので、日本向けのアダプタを別途用意する必要がある
    • 最近はコンビニでもコンビニで売ってる
    • 純正の日本向けアダプタを使っているけど、変圧器をかませなくても問題なく使えている
    • BF型のアダプタがおまけで付いてきたと思えばむしろ嬉しい
  • Softbankの周波数帯でも問題なく4Gで通信できている
    • ざっと調べた感じ、docomoauの周波数帯もカバーしている様だった
  • 技適は付いてる
    • Settings → General → Legal & Regulatoryで確認できる(下図)

f:id:a2ikm:20191022024529p:plain

値段についてはちゃんと計算していないので推測だけど、イギリスは物価が高いので、tax refundをしても日本で税込で購入する場合より高いと思う。

でも無音機能を追加料金を払って購入したと思うと、ちょっとぐらい高くてもいいかと納得できる。とにかく、シャッター音が鳴らないことで周囲に気遣いをするストレスが減って嬉しい。

5Gで機種変更するときまでには日本版でもシャッター音が無くなっていることを願う。

*1:宿や飛行機はあらかじめ押さえてあったので、旅と呼んでいいものだろうか。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。