Я ищу инструмент для рефакторинга для приложений с рельсами в Mac. После исследования на целую неделю я удивлен, что нет хорошего инструмента для ретрансляции пространства имен/контроллера/модели/просмотра/маршрутов за один раз. Я немного новичок в парадигме Mac, так что, возможно, я чего-то не хватает.Инструмент рефакторинга рельсов для Mac
Я вижу несколько пару драгоценных камней, разработанных для Rails, которые могут выполнять переименование/замену, но при этом после рефакторинга требуется «ручная настройка».
Чтобы обеспечить мое требование, здесь стандартный 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
Моим требование для этого инструмента очень просто:
Рефакторинг: «Пункт» в «продукт» - с футляром матчем
- Инструмент должен переименовать любой файл, содержащий «элемент» в «продукт»
- Инструмент должен переименовать любую папку, содержащую «элемент» для «производства ct "
- Инструмент должен найти и заменить" item "и" product "во всех файлах в текущей или подкаталоге.
С выше особенностью:
Я просто реакторной весь проект по:
> refactor "item" "product"
> refactor "Item" "Product"
> refactor "admin" "shop"
> refactor "Admin" "Shop"
Значительно признателен, если вы можете помочь мне, чтобы обеспечить связь любого инструмента Mac или любой скрипт, который может выполнить мой выше требование.
Возможно, вы захотите дать рубине мою попытку (не использовать ее самостоятельно, но она требует поддержки таких вещей, как рефакторинг) –
Спасибо Фредерик. Я пробовал RubyMine и да, вы можете реорганизовать класс или имена методов с RubyMine, но до сих пор не хватает обработки переименования имен папок и маршрутов карт (мое рефакторинг № 1 и № 2). –