notahat/tango — pull request #11 by ileitch (2012-02-16 18:03:55+00:00)
Title: Add Tango::Runner#perform for running all steps in the order they were defined.

Given a more complex runner which contains multiple steps, e.g:

```ruby
god = God.new(:environment => ENVIRONMENT)
god.install_gem
god.install_init_script
god.install_watchers
```

My top-level "app server installer" is quickly growing with the calls to individual steps. I don't really need to know the _individual_ steps involved when installing God from this level, only that God installation is a part of the process.

This PR adds a class-level `perform` method to Runner, so the above example would become:

```ruby
God.perform(:environment => ENVIRONMENT)
```

It runs each steps in the order they are defined. Arguments are passed through to the runner's constructor.