Every repository with this icon (
Every repository with this icon (
tree e24412cb9afd10e40913a495e82a0143daebd75a
parent 789e4fb4f0a53c2f14d51de838594960ae8d27ab
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Tue Apr 21 17:44:27 -0700 2009 | |
| |
CHANGES | ||
| |
MIT-LICENSE | Thu Oct 25 13:57:23 -0700 2007 | |
| |
README.rdoc | ||
| |
tasks/ |
LazyDeveloper
Copyright (C) 2007-2009 Brian P. Hogan and Kevin Gisi
Developers are lazy. I know I am. If I have to do things over and over, I want them to be automated. Maybe that’s efficient and not lazy. However, lazy is a shorter word and it’s funnier to call this plugin LazyDeveloper.
This plugin provides some useful Rake tasks that will make your life a little easier. I use them in many of my projects and I invite you to do the same.
Usage
Nuke
The Nuke tasks make cleaning up your project a breeze.
Let’s say a previous developer generated some controllers, models, helpers, and views using scaffolding and a healthy mix of broken Test::Unit test cases. You’ve already generated a nice RESTful controller, correctly pluralized while the original ones are not. When you look in your controllers folder, you see this:
account_controller.rb accounts_controller.rb
If you want to clean this up, you’d have to delete these files like so:
rm -rf app/controllers/account_controller.rb rm -rf app/helpers/account_helper.rb rm -rf app/views/account rm -rf test/functionals/account_controller_test.rb
Well, with the Nuke tasks, you can do this easily:
rake nuke:vc:account
The ‘vc’ is for view and controller. It’ll take out the whole controller and view combination, including the helper too. It’ll blow away any specs or tests associated, and it’ll detect if you’re using svn or git, so instead of deleting the files directly, it will schedule them for deletion via your source control system.
The nuke tasks can be quite granular.
* rake nuke:model:user / rake nuke:m:user * rake nuke:controller:user / rake nuke:c:user * rake nuke:views:user / rake nuke:v:user * rake nuke:helper:user * rake nuke:vc:user * rake nuke:mvc:user
The only thing these tasks won’t do is remove migrations, and that’s cos I think that’s dangerous
Databases
rake db:migrate
Everyone I know forgets to clone the test database when they make changes, so I decided to override rake:db:migrate so that when you run it, it automatically clones the test database, which is really useful if you run tests individually via TextMate or through the command line.
rake db:migrate rake db:migrate:up rake db:migrate:down
are all supported.
rake db:migrate:compact
Uses schema.rb to construct a brand new clean migration and moves all of your existing migrations out of the way. This might at first seem to violate the spirit of migrations, but honestly sometimes large projects have a LOT of migrations and it can get difficult to manage these files.
rake db:remigrate
Sometimes you just need to wipe out your database tables and start over. This task drops your tables and starts over by dropping the tables directly and then re-running your migrations. This provides a great way to test to make sure you haven’t broken migrations at some point, which will happen to you at some point.
rake db:to_yaml (formerly rake:db:import)
Dump your database to fixtures. Stores them in RAILS_ROOT/production_data. You can then use this to load the data back into another database, even one of a different type. We’ve used this to move data from SQL Server to MySQL and back again.
rake db:from_yaml (formerly rake:db:export)
Load fixtures from RAILS_ROOT/production_data into your database. Loads fixtures dumped by using rake db:export
Subversion
rake svn:root
Displays the root of your repository
rake svn:tags
Displays all the tags. Assumes you use a tags/ folder and a /trunk folder
rake svn:tags:last
Displays the last tag.
rake svn:tag TAG=rel_1-0-0
Creates a new tag from the trunk.
Rcov
Thanks to Kevin Gisi for these tasks that make running RCov a bit easier. Requires the RCov gem and the rails_rcov plugin
rake rcov:models
Runs coverage on your models
rake rcov:controllers
Runs coverage on your controllers
rake rcov:full
Runs coverage on models and controllers
Tests
Based on an idea from Geoffrey Grosenbach, you can run all tests in units\user_test.rb by doing
rake test:units:user:all
Or run a specific test by specifying all or part of a name. For example, if I wanted to run the "test_create" test case, I would use
rake test:units:user:create
The same rules apply to functional tests
rake test:functionals:users:list
Specs
RSpec gets some love here. If you need nice output for your specs, we overrode some of the built-in specs.
Running all model specs
rake spec:models
Running all controller specs
rake spec:controllers
Running a specific model or controller spec
rake spec:model:user rake spec:controller:sessions
Plugins
Create a file in your Home folder called .plugins and you can have all of your favorite plugins easily installed by doing
rake rails:install:plugins
Just put each plugin name or repository on its own line.
Windows users need to set the HOME environment variable.
Cleaning Up
Run
rake rails:clear
to clean up tmp, logs, and docs in one easy command.
Copyright © 2007-2009 Brian Hogan and Kevin Gisi. Released under the MIT license








