なるようになるブログ

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

rails commit log流し読み(2017/03/13)

2017/03/13分のコミットです。

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

actionpack/CHANGELOG.md


First editing pass on “Active Model Basics” guide

rails guideのActive Model Basicsの修正です。

言い回し、グラマー、フォーマットの修正等をまとめて行っています。


Second editing pass on “Active Model Basics” guide

rails guideのActive Model Basicsの修正です。

引き続き、言い回し、グラマー、フォーマットの修正等をまとめて行っています。


Merge pull request #28372 from kamipo/delegate_as_json

activerecord/lib/active_record/relation.rbactiverecord/lib/active_record/relation/delegation.rbの修正です。

ActiveRecord::Relationクラスにas_jsonメソッドを明示的に定義していたのをやめて、recordsにdelegateするメソッドの一覧にas_jsonを追加しています。as_jsonメソッドの中身がrecordsas_jsonを呼び出すだけだった為。


Fix weird documentation line

rails guideのActive Model Basicsの修正です。

先のActive Model Basics guideの修正で、Dirtyの項にあるexampleコードを誤って修正してしまっていたのを戻しています。


Merge pull request #28371 from kamipo/simplify_count

activerecord/lib/active_record/relation/calculations.rbの修正です。

Calculations#count#sumメソッドで、引数にblockが与えられていた場合は、親クラスのメソッドを呼び出すよう修正しています。

    def count(column_name = nil)
-      if block_given?
-        to_a.count { |*block_args| yield(*block_args) }
-      else
-        calculate(:count, column_name)
-      end
+      return super() if block_given?
+      calculate(:count, column_name)
     end

ActiveRecord::RelationEnumerableをincludeしており、countsumも使える為。


Merge pull request #28352 from alpaca-tc/fixes_renderer_with_defaults

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

ActionController::Renderer#with_defaultsメソッドがタイポによりNameErrorでエラーになってしまうバグがあったのを修正しています。

    def with_defaults(defaults)
-      self.class.new controller, env, self.defaults.merge(defaults)
+      self.class.new controller, @env, self.defaults.merge(defaults)
     end

Merge pull request #28017 from mtsmfm/suppress-dep-warn

Active Recordのテストの修正です。

Active Recordのテストでto_yamlに関するdeprecateメッセージ(implementing to_yaml is deprecated, please implement "encode_with")が出ていたのを、出ないよう対応(to_yamlが定義されていたらundefするよう対応)しています。

Objectdelegateしているクラスに対してYAML.dumpを呼び出した場合に発生してしまうとのことです。

参考:Bug #13115: `YAML.dump` outputs deperecated message even with delegated object


Merge pull request #28185 from renchap/system-testing-screenshot-output

actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rbの修正です。

system testingのスクリーンショット取得処理(#take_screenshot)で必ずターミナルにスクリーンショットを表示していたのを、環境変数(RAILS_SYSTEM_TESTING_SCREENSHOT)によって表示の仕方を調整出来るよう修正しています。

RAILS_SYSTEM_TESTING_SCREENSHOTに指定出来る値はinline(デフォルト。iTerm image protocol (http://iterm2.com/documentation-images.html)で表示。)、simple(スクリーンショットのファイルのパスだけ表示)、artifact(terminal artifact format (http://buildkite.github.io/terminal/inline-images/) で表示)の3つです。

rails commit log流し読み(2017/03/12)

2017/03/12分のコミットです。

CHANGELOGへの追加はありませんでした。


Merge pull request #28378 from y-yagi/use_correct_variable_in_reverse_merge_test

actionpack/test/controller/parameters/parameters_permit_test.rbの修正です。

reverse_mergeメソッドのテストで、assertionに使用する値が間違えていたのを修正しています。


Merge pull request #27051 from devonestes/adding-cache-clear-docs

activesupport/lib/active_support/cache/memory_store.rbのdocの修正です。

MemoryStore#clear#delete_matchedメソッドにdocを追加しています。


AS:Cache:MemoryStore doc fixes [ci skip] (#28389)

activesupport/lib/active_support/cache/memory_store.rbのdocの修正です。

MemoryStore#delete_matchedメソッドのdocでentriesentiresにタイポしていたのを修正しています。


Fix typo in the security guide

rails guideのRuby on Rails Security Guideの修正です。

Bypassing Authorizationの項のexampleで使用するメソッドが誤っていたのを修正しています。


Merge pull request #27152 from tjai89/patch-5

rails guideのAction Controller Overviewの修正です。

Methods and Actionsの項で、API documentationについて言及している箇所に、http://api.rubyonrails.org/classes/ActionController.html へのリンクを追加しています。


Add link to mentioned API [ci skip] (#28392)

rails guideのForm Helpersの修正です。

Time Zone and Country Selectの項で、API documentationについて言及している箇所に、http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-time_zone_options_for_select へのリンクを追加しています。

rails commit log流し読み(2017/03/11)

2017/03/11分のコミットです。

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

actionpack/CHANGELOG.md


Make sure local cache cleared even it’s throwing:

activesupport/lib/active_support/cache/strategy/local_cache_middleware.rbの修正です。

ActiveSupport::Cache::Strategy::LocalCache moduleでエラー発生時のcache clear処理にrescue Exceptionを使用していたのを、ensureを使用して処理を行うよう修正しています。

+            cleanup_on_body_close = true
             response
           rescue Rack::Utils::InvalidParameterError
-            LocalCacheRegistry.set_cache_for(local_cache_key, nil)
             [400, {}, []]
-          rescue Exception
-            LocalCacheRegistry.set_cache_for(local_cache_key, nil)
-            raise
+          ensure
+            LocalCacheRegistry.set_cache_for(local_cache_key, nil) unless
+              cleanup_on_body_close
           end

wardenを使用している場合に、wardenがthrowされたエラーをcatchしてしまい、LocalCacheの後処理が行われないことがある為、確実に処理が行われるようにする為にensureを使用するようにしたとのことです。


Improve readability of testing guide [ci skip]

rails guideのA Guide to Testing Rails Applicationsの修正です。

Rails meets Minitestの項、testメソッドについて説明している箇所の言い回しを修正しています。


Merge pull request #28355 from Edouard-chin/reversemerge-for-strongparameters

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

ActionController::Parametersクラスにreverse_merge及びreverse_merge!メソッドを追加しています。


Add @takkanm credits in the changelog [ci skip]

actionpack/CHANGELOG.mdの修正です。

先のreverse_mergereverse_merge!メソッドの対応についてのエントリーのクレジットにtakkanm さんを追加しています。元々同じ内容のPRをtakkanmさんが出されていた為。


Fix indentation and formatting in CHANGELOGs [ci skip]

actionpack/CHANGELOG.mdactivesupport/CHANGELOG.mdの修正です。

各エントリーのフォーマット、インデントの修正を行っています。


[docs] remove unnecessary sentence

actionpack/lib/action_controller/api.rbのdocの修正です。

ActionController::APIクラスのdoc内に不要な説明があったのを削除しています。

rails commit log流し読み(2017/03/10)

2017/03/10分のコミットです。

CHANGELOGへの追加はありませんでした。


Call system test driver per-instance rather than globally

Action Packの修正です。

system testのリファクタリングとして、globalで管理していたtest driverの情報をインスタンス毎に保持するようにして、SystemTestCaseの初期化のタイミングでdriverを設定するよう修正しています。


[ci skip] Document read_encrypted_secrets config.

railties/lib/rails/commands/secrets/USAGEの修正です。

rails:secrets のUSAGEに、config.read_encrypted_secretsにtrueが設定されてないとencrypted secretsの読み込みが行われない旨説明を追加しています。


Merge pull request #28182 from y-yagi/show_correct_rails_commands

railtiesの修正です。

rails helpで、secretsコマンドがsecretsとnamespaceだけ表示されていたのを、secrets:editsecrets:setup`とコマンドも表示するよう修正しています。


Add missing credit [ci skip]

activerecord/CHANGELOG.mdの修正です。

migration用のgeneratorsでRails.application.config.paths["db/migrate"]を使用する前に、Railsが定義されているかどうかチェックしていたのを、Rails.applicationが定義されているかどうか確認するよう修正した対応のエントリーにクレジットが不足していたのを追加しています。


Remove conditions parameter from NullRelation#delete_all

activerecord/lib/active_record/null_relation.rbの修正です。

NullRelation#delete_allメソッドの引数から_conditionsオプションを削除しています。 Remove deprecated conditions parameter from #delete_allの対応漏れ対応。

rails commit log流し読み(2017/03/09)

2017/03/09分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #28336 from tjschuck/test_delegated_params_methods

actionpack/test/controller/parameters/accessors_test.rbの修正です。

ActionController::Parametersdelegateしているメソッドについてのテストを追加しています。


Deprecate Migrator.schema_migrations_table_name

activerecord/lib/active_record/migration.rbの修正です。

Remove useless Migrator.schema_migrations_table_nameで削除したMigrator.schema_migrations_table_nameメソッドを一旦戻して、deprecateメッセージが表示されるよう修正しています。

private APIだった為deprecateのステップを行わず削除したのですが、このメソッドを使用しているgemが色々ある事がわかった為、deprecateにしてから削除するよう変更しています。


Merge pull request #28340 from k3rni/document-am-default-url-options

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

ActionMailer::Baseクラスのdocに、default_url_optionsはmailerクラス個別に上書き出来る旨説明を追加しています。


Fix select with block doesn’t return newly built records in has_many association

activerecord/lib/active_record/associations/collection_proxy.rbの修正です。

has_many association + select メソッドにblockを指定した場合(e.g. person.pets.select { |pet| pet.name =~ /oo/ }) に、新規に作成されたrecordが取得結果に含まれないバグがあったのを修正しています。


force UTF-8 as external encoding in guides generation [ci skip]

guides/Rakefileの修正です。

rails guideを生成する際、必ずencodingにen_US.UTF-8を設定する修正しています。 encodingがUTF8以外だとdocの生成に失敗してしまう事がある為、との事です。


Refactor system test driver/browser

Action Packの修正です。system testのリファクタリングを行っています。

driverにseleniumを使用していた場合とそれ以外のdriverを使用していた場合とで、driverの処理に異なるラッパークラスを使用していたのを、全てのdriverで同じクラスを使用するようリファクタリングを行っています。

rails commit log流し読み(2017/03/08)

2017/03/08分のコミットです。

CHANGELOGへの追加はありませんでした。


Document delegated public methods on AC::Parameters

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

ActionController::Parametersクラスがdelegateしている各メソッドについてdocを追加しています。


params –> parameters

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

Parametersクラスの各メソッド内のparamsparametersに修正しています。


Use appropriate type in generators test

railties/test/generators_test.rbの修正です。

generatorsのテストで、booleanを扱う為のオプションのtypeがstringになっていたのをbooleanに修正しています。

rails commit log流し読み(2017/03/07)

2017/03/07分のコミットです。

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

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #28257 from yahonda/app_generators_use_oracle_enhanced

railties/lib/rails/generators/app_base.rbrailties/lib/rails/generators/rails/app/templates/config/databases/oracle.ymlの修正です。

rails newコマンドでDBにoracleを指定した場合に使用するgemをactiverecord-oracle_enhanced-adapterに修正しています。


Update titlelize regex to allow apostrophes

activesupport/lib/active_support/inflector/methods.rbの修正です。

titlelizeアポストロフィの後にある単語の先頭を大文字に出来ないバグがあったのを修正しています。

# Before
"This was 'fake news'".titleize
# => "This Was 'fake News'"

# After
"This was 'fake news'".titleize
# => "This Was 'Fake News'"

[ci skip] ���� expensive: take two

railties/CHANGELOG.mdの修正です。

bin/rails test及びbin/rake testのデフォルトでsystem testsを実行しないようにした対応のエントリーで、expensiveexpansiveにタイポしていたのを修正しています。


Fix typo titlelize -> titleize [ci skip]

activesupport/CHANGELOG.mdの修正です。

titleizeメソッドをtitlelizeにタイポしている箇所があったのを修正しています。


CI against jruby-9.1.8.0

.travis.ymlの修正です。

CIで使用するJRubyのバージョンを9.1.8に更新しています。


Remove :on option that does ot exist [ci skip]

rails guideのA Guide to Testing Rails Applicationsの修正です。

System Testingの項のdriven_byメソッドについて説明している箇所から、既に存在しない:onオプションについての説明を削除しています。


Check whether Rails.application defined before calling it

activerecord/lib/rails/generators/active_record/migration.rbの修正です。

migration用のgeneratorsでRails.application.config.paths["db/migrate"]を使用する前に、Railsが定義されているかどうかチェックしていたのを、Rails.applicationが定義されているかどうか確認するよう修正しています。

-          if defined?(Rails) && Rails.application
+          if defined?(Rails.application) && Rails.application

Active Record単体で使用した場合、Railsは定義されているがRails.applicationは無い、という場合がある為。


Merge pull request #28289 from maicher/master

rails guideのActive Record Associationsの修正です。

Creating Foreign Keys for belongs_to Associationsの項に、add_foreign_keyメソッドを使用しての外部キー制約の指定方法についての説明を追加しています。