2

Mac で Rails アプリケーションのリファクタリング ツールを探しています。1 週間調査した結果、名前空間/コントローラー/モデル/ビュー/ルートを一度にリファクタリングできる優れたツールがないことにちょっと驚きました。私は Mac パラダイムに少し慣れていないので、何かが足りないかもしれません。

Rails 用に開発された、いくつかの名前変更/置換を実行できる gem をいくつか見ることができますが、それでもリファクタリング後に「手動調整」が必要です。

私の要件を満たすために、ここに標準のRailsプロジェクトがあります

# routes
map.namespace :admin do |admin|
  admin.resources :items
end
match "/admin/items/:id/enable" => "admin/items#enable"

# model
/app/models/items.rb
class item < ActiveRecord::Base

end

# views
/app/views/admin/items/
/app/views/admin/items/index.html.erb
/app/views/admin/items/show.html.erb
/app/views/admin/items/new.html.erb
/app/views/admin/items/edit.html.erb


# controller
/app/controllers/admin/items_controller.rb

class Admin::ItemsController < ApplicationController
  def index
    #
  end

  def show
    #
  end

  def enable
    #
  end
end

このツールに対する私の要件は非常に基本的です。

リファクタリング: 「アイテム」から「製品」へ - 大文字小文字の一致あり

  1. ツールは、「item」を含むすべてのファイルの名前を「product」に変更する必要があります
  2. ツールは、「アイテム」を含むフォルダーの名前を「製品」に変更する必要があります
  3. ツールは、現在のディレクトリまたはサブ ディレクトリ内のすべてのファイルで、"item" と "product" を検索して置換する必要があります。

上記の機能で:

次の方法で、プロジェクト全体を単純に反応させることができます。

> refactor "item" "product"
> refactor "Item" "Product"
> refactor "admin" "shop"
> refactor "Admin" "Shop"

上記の要件を満たすことができる Mac ツールまたはスクリプトのリンクを提供するのを手伝っていただければ幸いです。

4

2 に答える 2

2

さて、私はこれがきれいに聞こえると判断したので、あなたが望むものを引き離すためのツールを書きました.refactoと呼ぶことにしました.

ここにあなたの簡単な読み物があります:

適切な使用法は次のとおりです。refacto findString changeString <file extensions> <options>

ファイル拡張子はオプションではありません。ファイルの名前を変更またはリファクタリングするには、少なくとも 1 つのファイル拡張子をリストする必要があります。フォルダーの名前はデフォルトで変更されます。名前を変更したくない場合は、-nf を使用してください。

オプション:
-a : 各ファイル/フォルダーのリファクタリングまたは名前変更の確認を求めます。
-nf : フォルダーまたはサブフォルダーの名前を変更しません
-ci : 大文字と小文字を区別しません。findString のすべてのバージョンを変更します

ここでソースコードを入手してください: https://github.com/bpo217/refacto

注意すべき点がいくつかあります。

Refactor は、クラス名などだけでなく、ファイル内の findString のすべてのインスタンスを変更します。

Refactor は、すべてのサブフォルダーとそれらのサブフォルダー内のファイルにアクセスします。

これはコンパイル後のツールであるため、/usr/local/bin などに配置するだけで、ターミナルの任意の場所に refacto と入力して実行できます。常に現在の作業ディレクトリで機能します。

お役に立てれば!

于 2012-06-02T09:25:22.707 に答える
0

Rails のリファクタリングはそう簡単ではないと思います。

あまり頻繁に、または大規模に実行したくない場合は、単純なファイル内の検索と必要な場所の置換をお勧めします。はい、時間がかかりますが、ツールの検索と学習にも時間がかかります。注意したい場合は、後でツールの変更を確認してください;-)

Sidenote : Netbeans は検索機能があるため、このような作業には個人的に好みです。特に、ソース管理と統合している場合 (コミット前の適切なレビュー)。また、OS (Mac など) やプログラミング言語を切り替える必要がある場合にも便利です。

于 2012-06-01T14:17:37.603 に答える