週刊Railsウォッチ(20190617-1/2前編)マルチプルデータベースガイドが追加、mmcと「Ruby 3の型解析に向けた計画」、Ruby 2.6のCSVライブラリはいいほか

こんにちは、hachi8833です。Macbook Pro late 2013の次をどうするか心が揺れてます。 「ふふふ、Macで消耗してるウェブエンジニアはWSL2来たらみんなWindowsに流れてくるんだから…」とにやけながらTLを眺めてるヤンデレ系Windowsユーザーです — masa寿司 (@masa_iwasaki) June 8, 2019 つっつきボイス:「WSL2の出来はかなり気になるヤツですね(今Windowsだし❤️)」「結局POSIX APIを頑張ってラップしてどうにかするのを諦めてLinuxカーネルを内包する流れになったという😆」「WindowsのPOSIX APIはつくづく👎だったけど、あれはまあ別物ですし」「今macOSのbashとParallels DesktopのUbuntu VMのbashの二重生活なんですけど😢、WSL2でもさすがに1つにはならないんでしょうか?」「ハイパーバイザでLinuxを動かすならまあDocker for Windowsを使ってるのと大差ないですね😆」「やっぱり〜😆」 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓お知らせ: 第12回公開つっつき会(無料) 応募先: 週刊Railsウォッチ公開つっつき会 第12回|IT勉強会ならTECH PLAY[テックプレイ] 開始以来ついに1年目を迎えた第12回目公開つっつき会は7月4日(木)19:30〜にBPS会議スペースにて開催されます。皆さまのお気軽なご参加をお待ちしております🙇。 ⚓Rails: 先週の改修(Rails公式ニュースより) 今回はコミットリストから見繕いました。ドキュメント更新がだいぶ増えています。 コミットリスト: Comparing master@{2019-06-06}...@{2019-06-13} · rails/rails つっつきボイス:「そろそろRC2が出そうかなと」「これだけかかるとRC2必要でしょうね😆」 ⚓MessageEncryptorでon_rotationがコンストラクタで渡されるようにした commit: Allow `on_rotation` in MessageEncryptor to be passed in constructor: · rails/rails@a5502f4 メッセージの暗号解除/検証時に使われるon_rotation procをコンストラクタのレベルで渡されるようにした Before: crypt = ActiveSupport::MessageEncryptor.new(‘long_secret’) crypt.decrypt_and_verify(encrypted_message, on_rotation: proc { … }) crypt.decrypt_and_verify(another_encrypted_message, on_rotation: proc { … }) After: crypt = ActiveSupport::MessageEncryptor.new(‘long_secret’, on_rotation: proc { … }) crypt.decrypt_and_verify(encrypted_message) crypt.decrypt_and_verify(another_encrypted_message) つっつきボイス:「暗号化で言うローテーションでしょうか?」「on_rotationはどうやら鍵のフォールバックで使うものらしい」 API: ActiveSupport::MessageEncryptor MessageEncryptorは、encryptorのスタックへのフォールバックによって古い設定のローテーションをサポートする。rotateを呼んでビルドし、encryptorを追加すると、decrypt_and_verifyでもフォールバックを試行する。 ローテーションされたencryptorは、デフォルトでは他を指定されてない場合プライマリのencryptorを用いる。 api.rubyonrail.orgより大意 「ちなみに、鍵を変えないといけなくなる状況ってやっぱりあって、極端な場合は、間違えてsecretをコミットしちゃったとかお漏らししちゃったとか😅」「あ〜」「そこまでいかなくてもsecretを知っている人が退職したときなんかもそうですね: 正直面倒ですし、NDAで縛るという手もありますが、やはり鍵はちゃんと変えるべき」「ですね😅」 on_rotationは新しいらしく、6.0↓には入ってますがRails 5.xのAPIにはありませんでした。 GitHub: Search · on_rotation — rails/rails ⚓Action Viewのテストをパラレル実行 元記事: Run actionview tests in parallel by jhawthorn · Pull Request #36422 · rails/rails # actionview/test/abstract_unit.rb#L194 class ActiveSupport::TestCase + parallelize + include ActiveSupport::Testing::MethodCallAssertions private # Skips the current run on Rubinius using Minitest::Assertions#skip def rubinius_skip(message = “”) skip message if RUBY_ENGINE == “rbx” end # Skips the current run on JRuby using Minitest::Assertions#skip def jruby_skip(message = “”) skip message if defined?(JRUBY_VERSION) end end つっつきボイス:「parallelizeって書くとパラレルになってくれるんだ!」「せっかく作ったのに書き漏れてたから足したっぽい」「パラレライズって何となく麻酔が効きそうな響き(それはparalyze)😆」 parallelize: rails/test_case.rb at e9f6ce617be2f67b098e6fb689592f70c0009eb2 · rails/rails def parallelize(workers: :number_of_processors, with: :processes) workers = Concurrent.physical_processor_count if workers == … Continue reading 週刊Railsウォッチ(20190617-1/2前編)マルチプルデータベースガイドが追加、mmcと「Ruby 3の型解析に向けた計画」、Ruby 2.6のCSVライブラリはいいほか