週刊Railsウォッチ(20190408-1/2前編)RubyKaigiの予習資料、Rails「今年ベストのプルリク」、numbered parametersの議論ほか

こんにちは、hachi8833です。とうとうGoogle Plusが終わってTechRacho記事の上のG+ボタンが消えましたが、Inbox By Gmail(iPhoneアプリ)まで終了とは油断でした😇。 つっつきボイス:「Google Plus終わりましたね👋」「ひと月ぐらい前からG+ボタンがひとりでに消滅しました😇」「公式のG+ボタンだからでしょうね☺️: 自分でカスタマイズしているボタンだと消えなさそう」 「ところでGoogle Plusの終了対応やった人います?」「やってないかな〜」「お、私はサイトからGoogle Plusのauth login外す作業やりました😆」 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください 4/4(木)の第9回 公開つっつき会には7名のゲストが参加し、BPS社員も交えてこれまでで最大の賑わいとなりました。本当にありがとうございます😂! ⚓Rails: 先週の改修(Rails公式ニュースより) 公式の更新情報のいくつかは、先週のウォッチで@jeremy氏のキーノートで先回りしましたので、それ以外のものを取り上げました。 ⚓「今年ベストのPR」 と公式の更新情報に書かれていました。 PR: sub, sub!, gsub, and gsub! should set back references by shugo · Pull Request #34405 · rails/rails “foo123″.html_safe.sub(/([a-z]+)([0-9]+)/) { $2 + $1 #=> undefined method `+’ for nil:NilClass (NoMethodError) } つっつきボイス:「今年ベストと!」「@shugoさんによるActive Supportの機能追加なんですが、#subとかで正規表現の$1みたいな後方参照(back reference)が効いていなかったのが効くようになったそうです」「後方参照をそもそも使ったことがなかった😆」「やりたい人はいそう」「上↑みたいなのはやりたい場合があるかも!」「@amatsudaさんがRubyらしい修正方法ととても喜んでました」「自分でそれ用のメソッド書くより(・∀・)イイ!!」 Ruby: 正規表現の後方参照を「正しく」エスケープする方法(翻訳) ⚓roflscalingを削除 PR: Remove roflscaling by jeremyevans · Pull Request #35664 · rails/rails # activerecord/lib/arel/visitors/mssql.rb#L109 – inject_join o.wheres, collector, AND + inject_join o.wheres, collector, ” AND ” つっつきボイス:「修正そのものは単純なんですが、このroflscalingという言葉がどこから来たのかが謎で🤔、roflを何度もrolfと書き間違えました😅」「あーなるほど、何を変えたかはコード見ればとてもわかりみ😋: 由来はわからんけど😆」「全然わからない😅」「謎すぎ😅」「プルリクで挙動については説明してくれていますね↓」 roflscaling (using frozen string constants instead of literal strings) 「どうも8年前のRedditの書き込みと動画↓が関連しているようで、その時期にバズったジャーゴンか何かのようです」 いかにもな機械音声でゆっくろいどを思い出しました。 元記事: Roflscale 101: Using class_eval instead of modules for speed : ruby 「更新前のドキュメントでInstructionSequenceとか使ってる↓し、インストラクションレベルのすごーく微細な部分の最適化をroflscaleって呼んでるのかな?」「roflscaleしたことでかなり速くなってたのか😳」「Rubyのfrozen string literal化でそれが不要になったということみたいですね」 # activerecord/lib/arel/visitors/to_sql.rb#L20 – # > puts RubyVM::InstructionSequence.new(‘def foo; “bar”; end’).disasm – # – # == disasm: <RubyVM::InstructionSequence:foo@<compiled>>===== – # 0000 trace 8 – # 0002 trace 1 – # 0004 putstring “bar” – # 0006 trace 16 – # 0008 leave 公式の見出しで「Stop ROFL」とあるのはダブルミーニングのようです。上の動画の「101」は、いわゆる「〜入門」「〜のいろは」を表すそうです(大学の最初の授業番号が101であることが多いのが由来)。 ROFL: 床を転げ回って爆笑(rolling on the floor, laughing)🤣 ネイティブもroflscaleが何なのか首を傾げている↓みたいです。 @tunixman BTW, roflscale means "roll on floor laughing scale," right? That's what everyone means, right? — michaeljforster … Continue reading 週刊Railsウォッチ(20190408-1/2前編)RubyKaigiの予習資料、Rails「今年ベストのプルリク」、numbered parametersの議論ほか