週刊Railsウォッチ(20180126)Bootstrap 4登場でbootstrap_form gemが対応、PostgreSQLやnginxの設定ファイル生成サービスほか

こんにちは、hachi8833です。ついに東京都のインフルエンザ流行が警報を超えました。剣呑剣呑。 1月最後のRailsウォッチ、いってみましょう。 Rails: 今週の改修 今週も主に最近のcommitから見繕いました。 assert_changesが式の変更を認識するよう修正 PR: #31011 assert_changes should always assert some change # activesupport/lib/active_support/testing/assertions.rb#159 – if to == UNTRACKED – error = “#{expression.inspect} didn’t change” – error = “#{message}.\n#{error}” if message – assert before != after, error – else + error = “#{expression.inspect} didn’t change” + error = “#{error}. It was already #{to}” if before == to + error = “#{message}.\n#{error}” if message + assert before != after, error + + unless to == UNTRACKED つっつきボイス: 「assert_changesに評価前の値が渡ってたということか」 nil/falseチェックをtrue/falseチェックに修正 commit: #408c6e5 Dont perform unnecessary check with false, just use true/false values for @active on SQLite adapter. activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#86 def initialize(connection, logger, connection_options, config) super(connection, logger, config) – @active = nil + @active = true @statements = StatementPool.new(self.class.type_cast_config_to_integer(config[:statement_limit])) end … def active? – @active != false + @active end つっつきボイス: 「これは直したいやつ: SQLite3ってまず使わないけど」「そういえばSQLite3ってもうRailsのデフォルトから外れてる?」「まだデフォルトはSQLite3ですね」 ActionMailer::Base.defaultのprocの引数の個数(アリティ)を1に戻した PR: #fbb2fc8 assert_changes should always assert some change # actionmailer/lib/action_mailer/base.rb#901 + def compute_default(value) + return value unless value.is_a?(Proc) + + if value.arity == 1 + instance_exec(self, &value) + else + instance_exec(&value) + end + end もしかしてarityって、binaryとかunaryとかtrinaryの「-ary」から来てるんでしょうか。とても造語っぽい。 つっつきボイス: 「Proc#arityって可変長の場合マイナスの値を返すのか!」「でも確かにRubyとしてはここでInteger以外の値を返したくないだろうな」「arityはプログラミング業界の造語っぽいですねー」「私の手元にある英語辞書串刺し検索でも類似のもの出てこないです」 参考: Ruby 2.5.0リファレンスマニュアル Proc#arity 参考: Wikipedia-ja アリティ has_many :through関連付けでレコードがdestroyされてない状態でカウンタキャッシュを更新しないよう修正 commit: … Continue reading 週刊Railsウォッチ(20180126)Bootstrap 4登場でbootstrap_form gemが対応、PostgreSQLやnginxの設定ファイル生成サービスほか