僕は発展途上技術者

[RAILS_APP]/config/boot.rb:26:Warning: Gem::SourceIndex#search support for String patterns is deprecated メッセージを消す

以前の案件の Rails アプリケーションで


# rake db:migrate


を実行してみたところ、うまく動くは動くのだが



[RAILS_APP]/config/boot.rb:26:Warning: Gem::SourceIndex#search support for String patterns is deprecated


という Warning メッセージが出る。


config/boot.rb の26行目



rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last




rails_gem = Gem.cache.find_name('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last


に修正すれば、Warning は消える。


» #8729 ([PATCH] Rake rails:freeze:gems loads the last gem that starts with the string "rails") - Rails Trac - Trac


に詳細が書かれている。



In the source for the rake task, the code is calling the search method for the Gem SourceIndex. This method matches anything that has the pattern of the string passed in, in this case "rails" which would include any gem starting with the string "rails." I have patched this code to use the find_name method that returns the exact match of the string that is passed in; in this case, "rails."


search メソッドだと、rails で始まるすべての gem にマッチしてしまうので、"rails" gem だけにマッチさせるよう find_name に変更された、とのこと。


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ