$ script/plugin install git://github.com/hiroshi/script-refactor.git
インストールすると、 script/refactor が生成されます。
例: user を person に変える。
$ script/refactor resource user person
Renamming files and directories:
git mv app/views/users app/views/people
git mv app/helpers/users_helper.rb app/helpers/people_helper.rb
git mv app/models/user.rb app/models/person.rb
git mv test/unit/user_test.rb test/unit/person_test.rb
git mv test/functional/users_controller_test.rb test/functional/people_controller_test.rb
git mv app/controllers/users_controller.rb app/controllers/people_controller.rb
git mv test/fixtures/users.yml test/fixtures/people.yml
Replacing class and variables:
user -> person
Users -> People
User -> Person
users -> people
pettern: /(\b|_)(user|Users|User|users)(\b|[_A-Z])/
./test/unit/person_test.rb:3: class UserTest < ActiveSupport::TestCase
./test/unit/person_test.rb:7: fixtures :users
./test/unit/person_test.rb:9: def test_should_create_user
./test/unit/person_test.rb:10: assert_difference 'User.count' do
...
./app/controllers/application.rb:18: current_user.group
NOTE: If you want to revert them:
git reset --hard
こんな感じにモデル、コントローラ、ヘルパー、テストのファイル名を変更して、コード中のクラス名、変数名もルールに従っているものは変更します。
適当に書いたスクリプトなので、特に置換する部分が思うような挙動にならない場合もあるかと思います。改善案やパッチをください。