123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- = RAKE -- Ruby Make
- This package contains Rake, a simple ruby build program with capabilities
- similar to make.
- Rake has the following features:
- * Rakefiles (rake's version of Makefiles) are completely defined in
- standard Ruby syntax. No XML files to edit. No quirky Makefile
- syntax to worry about (is that a tab or a space?)
- * Users can specify tasks with prerequisites.
- * Rake supports rule patterns to synthesize implicit tasks.
- * Flexible FileLists that act like arrays but know about manipulating
- file names and paths.
- * A library of prepackaged tasks to make building rakefiles easier. For example,
- tasks for building tarballs and publishing to FTP or SSH sites. (Formerly
- tasks for building RDoc and Gems were included in rake but they're now
- available in RDoc and RubyGems respectively.)
- * Supports parallel execution of tasks.
- == Installation
- === Gem Installation
- Download and install rake with the following.
- gem install rake
- === Normal Installation
- You can download the source tarball of the latest version of Rake from
- * http://rubyforge.org/project/showfiles.php?group_id=50
- Extract the tarball and run
- % ruby install.rb
- from its distribution directory.
- == Usage
- === Simple Example
- First, you must write a "Rakefile" file which contains the build rules. Here's
- a simple example:
- task :default => [:test]
- task :test do
- ruby "test/unittest.rb"
- end
- This Rakefile has two tasks:
- * A task named "test", which - upon invocation - will run a unit test file in
- Ruby.
- * A task named "default". This task does nothing by itself, but it has exactly
- one dependency, namely the "test" task. Invoking the "default" task will
- cause Rake to invoke the "test" task as well.
- Running the "rake" command without any options will cause it to run the
- "default" task in the Rakefile:
- % ls
- Rakefile test/
- % rake
- (in /home/some_user/Projects/rake)
- ruby test/unittest.rb
- ....unit test output here...
- Type "rake --help" for all available options.
- === More Information
- * For details on Rake's command-line invocation, read
- doc/command_line_usage.rdoc[http://rake.rubyforge.org/files/doc/command_line_usage_rdoc.html]
- * For details on writing Rakefiles, see
- doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html].
- * For the original announcement of Rake, see
- doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html].
- * For a glossary of terms, see
- doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html].
- == Development
- === Source Repository
- Rake is currently hosted at github. The github web page is
- http://github.com/jimweirich/rake. The public git clone URL is
- * git://github.com/jimweirich/rake.git
- === Running the Rake Test Suite
- If you wish to run the unit and functional tests that come with Rake:
- * Install the 'flexmock' gem
- * Install the 'session' gem in order to run the functional tests.
- * CD into the top project directory of rake.
- * Type one of the following:
- rake # If you have a version of rake installed
- ruby -Ilib bin/rake # If you do not have a version of rake installed.
- === Issues and Bug Reports
- Feature requests and bug reports can be made here
- * https://github.com/jimweirich/rake/issues
- Issues and bug reports can also be tracked here:
- * http://www.pivotaltracker.com/projects/28469
- == Online Resources
- === Rake References
- * Rake Documentation Home: http://docs.rubyrake.org
- * Rake Project Page: http://rubyforge.org/projects/rake
- * Rake API Documents: http://rake.rubyforge.org
- * Rake Source Code Repo: http://github.com/jimweirich/rake
- * Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git
- * Rake Issue Tracking: http://www.pivotaltracker.com/projects/28469
- * Rake Bug Reports: https://github.com/jimweirich/rake/issues
- === Presentations and Articles about Rake
- * Jim Weirich's 2003 RubyConf presentation:
- http://onestepback.org/articles/buildingwithrake/
- * Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
- == Other Make Reinvisionings ...
- Rake is a late entry in the make replacement field. Here are links to
- other projects with similar (and not so similar) goals.
- * http://directory.fsf.org/bras.html -- Bras, one of earliest
- implementations of "make in a scripting language".
- * http://www.a-a-p.org -- Make in Python
- * http://www.aromatic.com/tools/jam.txt -- JAM, Java Automated Make
- * http://ant.apache.org -- The Ant project
- * http://ppt.perl.org/commands/make/index.html -- Make from the Perl
- Power Tools implementation.
- * http://search.cpan.org/search?query=PerlBuildSystem -- The Perl Build System
- * http://make.rubyforge.org -- Rant, another Ruby make tool.
- == Credits
- [<b>Ryan Dlugosz</b>] For the initial conversation that sparked Rake.
- [<b>nobu.nokada@softhome.net</b>] For the initial patch for rule support.
- [<b>Tilman Sauerbeck <tilman@code-monkey.de></b>] For the recursive rule patch.
- == License
- Rake is available under an MIT-style license.
- :include: MIT-LICENSE
- == Support
- The Rake homepage is http://rake.rubyforge.org. You can find the Rake
- RubyForge page at http://rubyforge.org/projects/rake.
- Feel free to submit commits or feature requests. If you send a patch,
- remember to update the corresponding unit tests. In fact, I prefer
- new feature to be submitted in the form of new unit tests.
- For other information, feel free to ask on the ruby-talk mailing list
- (which is mirrored to comp.lang.ruby) or contact
- jim dot weirich at gmail.com.
- ---
- = Other stuff
- Author:: Jim Weirich <jim.weirich@gmail.com>
- Requires:: Ruby 1.8.6 or later
- License:: Copyright 2003-2008 by Jim Weirich.
- Released under an MIT-style license. See the LICENSE file
- included in the distribution.
- == Warranty
- This software is provided "as is" and without any express or
- implied warranties, including, without limitation, the implied
- warranties of merchantibility and fitness for a particular
- purpose.
|