人気ブログランキング | 話題のタグを見る

RoR Rakefile

rails demo で作った demo ディレクトリの中身はほとんどがサブディレクトリだが、README と Rakefile の二つはファイルだ。Readmeについては既に見たので、Rakefileを覗いてみた。

~/rails/demo$ ls
README app db lib public test vendor
Rakefile config doc log script tmp
~/rails/demo$ cat Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require(File.join(File.dirname(__FILE__), 'config', 'boot'))

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'

require 'tasks/rails'

他のファイルを require で読み込んでいるだけだった。

Rakefile は Rake が実行するタスクを記述してあるファイルだ。しかし、Rake とは何だろう。Rake とは Ruby 版の make のことらしい。make はアプリケーションをソースからビルドするときに使うやつだ。アプリケーションの入ったディレクトリに移動して、./configure、make、make install とやると魔法のようにソースがコンパイルされるあれだ。

Rakeについての説明は、『Haida's weblog: Rake ことはじめ』がわかりやすかった。単純だけれどかなり便利なソフトのようだ。このせつめいによると、rake --tasks とすると Rake で管理できるタスクの一覧を見ることができるらしい。やってみた。
:~/rails/demo$ rake --tasks
(in /home/********/rails/demo)
rake db:abort_if_pending_migrations # Raises an error if there are pending...
rake db:charset # Retrieves the charset for the curren...
rake db:collation # Retrieves the collation for the curr...
rake db:create # Create the database defined in confi...
rake db:create:all # Create all the local databases defin...
rake db:drop # Drops the database for the current R...
rake db:drop:all # Drops all the local databases define...
rake db:fixtures:identify # Search for a fixture given a LABEL o...
rake db:fixtures:load # Load fixtures into the current envir...
rake db:migrate # Migrate the database through scripts...
rake db:migrate:down # Runs the "down" for a given migratio...
rake db:migrate:redo # Rollbacks the database one migration...
rake db:migrate:reset # Resets your database using your migr...
rake db:migrate:up # Runs the "up" for a given migration ...
rake db:reset # Drops and recreates the database fro...
rake db:rollback # Rolls the schema back to the previou...
rake db:schema:dump # Create a db/schema.rb file that can ...
rake db:schema:load # Load a schema.rb file into the database
rake db:sessions:clear # Clear the sessions table
rake db:sessions:create # Creates a sessions migration for use...
rake db:structure:dump # Dump the database structure to a SQL...
rake db:test:clone # Recreate the test database from the ...
rake db:test:clone_structure # Recreate the test databases from the...
rake db:test:load # Recreate the test database from the ...
rake db:test:prepare # Check for pending migrations and loa...
rake db:test:purge # Empty the test database
rake db:version # Retrieves the current schema version...
rake doc:app # Build the app HTML Files
rake doc:clobber_app # Remove rdoc products
rake doc:clobber_plugins # Remove plugin documentation
rake doc:clobber_rails # Remove rdoc products
rake doc:plugins # Generate documentation for all insta...
rake doc:rails # Build the rails HTML Files
rake doc:reapp # Force a rebuild of the RDOC files
rake doc:rerails # Force a rebuild of the RDOC files
rake gems # List the gems that this rails applic...
rake gems:build # Build any native extensions for unpa...
rake gems:install # Installs all required gems for this ...
rake gems:unpack # Unpacks the specified gem into vendo...
rake gems:unpack:dependencies # Unpacks the specified gems and its d...
rake log:clear # Truncates all *.log files in log/ to...
rake notes # Enumerate all annotations
rake notes:fixme # Enumerate all FIXME annotations
rake notes:optimize # Enumerate all OPTIMIZE annotations
rake notes:todo # Enumerate all TODO annotations
rake rails:freeze:edge # Lock to latest Edge Rails, for a spe...
rake rails:freeze:gems # Lock this application to the current...
rake rails:unfreeze # Unlock this application from freeze ...
rake rails:update # Update both configs, scripts and pub...
rake rails:update:configs # Update config/boot.rb from your curr...
rake rails:update:javascripts # Update your javascripts from your cu...
rake rails:update:scripts # Add new scripts to the application s...
rake routes # Print out all defined routes in matc...
rake secret # Generate a crytographically secure s...
rake stats # Report code statistics (KLOCs, etc) ...
rake test # Run all unit, functional and integra...
rake test:functionals # Run tests for functionalsdb:test:pre...
rake test:integration # Run tests for integrationdb:test:pre...
rake test:plugins # Run tests for pluginsenvironment / R...
rake test:recent # Run tests for recentdb:test:prepare ...
rake test:uncommitted # Run tests for uncommitteddb:test:pre...
rake test:units # Run tests for unitsdb:test:prepare /...
rake time:zones:all # Displays names of all time zones rec...
rake time:zones:local # Displays names of time zones recogni...
rake time:zones:us # Displays names of US time zones reco...
rake tmp:cache:clear # Clears all files and directories in ...
rake tmp:clear # Clear session, cache, and socket fil...
rake tmp:create # Creates tmp directories for sessions...
rake tmp:pids:clear # Clears all files in tmp/pids
rake tmp:sessions:clear # Clears all files in tmp/sessions
rake tmp:sockets:clear # Clears all files in tmp/sockets

こりゃあ、大変だ。
by tnomura9 | 2008-10-14 21:41 | Ruby | Comments(0)
<< RoR app/views/l... RoR scaffold のア... >>