Default Regexp.timeout and more! | This Week in Rails
ActiveRecordに関する変更です
環境変数 DATABASE_URL のクエリパラメータに query_cache というパラメータを指定したときの挙動を修正しています
そもそも DATABASE_URL にクエリパラメータを指定することでDB接続の設定情報として定義できるんですね、知らなかったです
同じ接続情報をURL化して、以下のように環境変数に保存することも可能です。
ENV['DATABASE_URL'] # => "postgresql://localhost/blog_development?pool=5"
今回は query_cache というパラメータの話です
このパラメータはこれまで次のような挙動でした
"false" が指定されたら「キャッシュしない」
それ以外が指定されたら「キャッシュする」という挙動になっていました
今回の変更により次のようになりました
"false" が指定されたら「キャッシュしない」
数字が指定されたら「数字を数値に変換し、その数値までの文字数をキャッシュする」
それ以外が指定されたら「キャッシュする」
今回の変更により、キャッシュする文字数をURLパラメータで指定できるようになった、ということですね
railtiesに関する変更です
正規表現のタイムアウトの初期値が1秒に設定されるようになりました
なお、タイムアウトがすでに設定されている場合は、それを上書きしません。
正規表現のタイムアウトについてはRubyのドキュメントに記載があります
初期値は nil で、タイムアウトしないようになっています
タイムアウトの設定は2つあります
正規表現クラスのタイムアウト
code:rb
Regexp.timeout # => nil
Regexp.timeout = 3.0
Regexp.timeout # => 3.0
正規表現オブジェクトごとのタイムアウト
code:rb
re = Regexp.new('foo', timeout: 5.0)
re.timeout # => 5.0