2016-12-12 2 views
0

アプリをレール4からレール5にアップグレードしています。ActionController::TestCase HTTP deprecation warningを取得しています。私はそれを修正する方法を知っています。たとえば、get :show, id: 1, email: [email protected]get :show, params: { id: 1, email: [email protected] }になりますが、このアプリはレール2からの日付で、50を超えるコントローラ仕様で警告のインスタンスが多数存在します。私は、ほとんどの警告を修正するSublime Textで動作する正規表現を開発しようとしています。私の最初の試みは、これは多くのケースで動作しますが、次の方法ActionController :: TestCase HTTP非推奨の警告を修正する正規表現

  • getが複数のラインの上に行く場合、それは動作しませんに失敗し

    Find: (get :[\w]*,)([^\n]*) 
    Replace : \1 params: { \2 } 
    

    です。 1行を超える場合は、前の行は,\nで終わります。

    • 、入力の別の種類が存在する場合、それが動作しないputcreateおよび他のHTTP動詞
    • 機能しない例えばheaders

私はこれらの比較的少ないを持っているように、最後の場合は、手動でこれらの問題を解決することができ、私にとってそれは重要ではありません。他の人が、正規表現を見つけて、置き換え命令を提案して、ほとんどの非推奨ケースを修正できますか?

答えて

0

私は、マルチラインとさまざまなhttp動詞で動作する次のプロセスを考え出しました。 header情報の使用など、より複雑なケースでは機能しません。これは、2段階のプロセスである:

Find: (get|post|put|patch|delete)(:\w+)((?:,\n?[^\n,]+)+) 
Replace: \1\2, params: { \3 } 

その後、

Find: params: { , 
then 
params: { 

これは私の非推奨の警告の95%を解決しました。

1

私は同じ問題を抱えていたが、代わりに正規表現の私はRubocopの自動修正機能を使用:

http://rubocop.readthedocs.io/en/latest/cops_rails/#railshttppositionalarguments

> bundle exec rubocop --rails --only HttpPositionalArguments --auto-correct

構文エラーを発生させることなく、これらの非推奨の警告の膨大な数を固定しました。 TargetRailsVersion: 5.0以上を設定して、その警官を有効にしてください。

+0

これは興味深いです。私のコードでそれを使うのは遅すぎますが、私は将来robocop autofixの機能に注目していきます。 – Obromios

関連する問題