なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2015/02/16)

2015/02/16分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md

actionview/CHANGELOG.md


Implement http_cache_forever to ActionController

actionpack/lib/action_controller/metal/conditional_get.rbの修正です。

ActionControllerhttp_cache_foreverメソッドを追加しています。

Cache-Controlのmax-ageに大きな値(100年)を指定し、キャッシュをexpireしないようにする為のメソッドです。

http_cache_forever { render :forever }

実装はこんな感じ。

def http_cache_forever(public: false, version: 'v1')
  expires_in 100.years, public: public

  yield if stale?(etag: "#{version}-#{request.fullpath}",
                  last_modified: Time.parse('2011-01-01').utc,
                  public: public)
end

Cache-Control はデフォルトではprivateですが、第一引数にtrueを設定する事で、publicに変更する事が可能です。


Added default values for #format_paragraph docs [skip ci]

actionmailer/lib/action_mailer/mail_helper.rbのdocの修正です。

format_paragraphメソッドのデフォルト値についての説明を追加しています。


Tiny documentation edits [ci skip]

各種rails guide、API Docsのタイポ、グラマーの修正をまとめて行っています。


Add Gemfile.lock to plugin's gitignore template

railties/lib/rails/generators/rails/plugin/templates/gitignoreの修正です。

plugin用のgitignoreファイルに、Gemfile.lockを追加しています。


Add a global type registry, used to lookup and register types

activerecord/lib/active_record/type.rbactiverecord/lib/active_record/type/adapter_specific_registry.rbの修正です。

globalで使用出来るtypeを登録する為のActiveRecord::Type.registerメソッドを追加しています。

例。

ActiveRecord::Type.register(:money, MyMoneyType)

Register adapter specific types with the global type registry

ActiveRecordの修正です。

各adapter固有のtype(PostgreSQLjsonjsonbなど)を登録するのに、先に追加されたActiveRecord::Type.registerメソッドを使用するよう修正しています。


fix, to_table in remove_foreign_key should be plural.

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbの修正です。

remove_referenceメソッドforeign_keyオプションを指定した場合に、remove_foreign_keyで削除するテーブル名をpluralizeメソッド複数形にするよう修正しています。


Merge pull request #18662 from estum/foreign-key-exists

activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rbactiverecord/lib/active_record/connection_adapters/abstract/schema_statements.rbの修正です。

外部キーが存在するかどうかチェックするためのforeign_key_exists?メソッドを追加しています。

foreign_key_exists?(:accounts, :branches)

Allow to pass a string value to size option in image_tag and video_tag

actionview/lib/action_view/helpers/asset_tag_helper.rbの修正です。

image_tagvideo_tagメソッドsizeオプションにFixnumの値を指定出来るよう修正しています。

image_tag("gold.png", size: 20)
# => <img alt="Gold" height="20" src="/images/gold.png" width="20" />

元々はStringしか指定出来なかったのですが、widthheightオプションはFixnumが元々指定出来たので、そちらに合わせるよう対応したとの事です。