very basic problem with rake task?

I wrote the following rake task to execute the 'ls' UNIX command using
the 'command' method in the 'FileOperation' module

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

require 'FileOperations'
include FileOperations

namespace :test do
  task :post_heartrate do
    FileOperations.command 'ls'

When I run it, I get the following error:
no such file to load -- FileOperations

Then, I get the following error if I take out the 'require' line:
uninitialized constant FileOperations

I know this is a very basic problem. Any suggestions?


HI Chirag,

I’m guessing you copied the rake from the middle of a Rails app maybe? There is a lot of extra requires that are not “required”.

Here is a rake file that accomplishes what you describe. There were no other requires or anything else. This is the defined “Rake File Format”. Also, Dir.glob is in the Ruby core, so no requires are necessary. :

=== start RakeFile.rb ===
desc “List Files in current dir.”

task :list_files do
Dir.glob("*").each do |d|
puts d


=== end RakeFile.rb ===

And the output :
$ ls -l
total 1
-rw-r–r-- 1 mlpf mkgroup-l-d 101 Aug 21 09:26 RakeFile.rb

$ rake -T
(in /home/mlpf/ruby)
rake list_files # List Files in current dir.

$ rake list_files
(in /home/mlpf/ruby)

Here are the references I reviewed:
“Rake Tutorial”:

“Rake Users Guide”:

Hope that helps!
Peter Fitzgibbons

FileOperations is part of the guts of Rails.

To run an external command, use the "sh" method which Rake provides:

  sh 'somecommand'

Rake includes the Ruby standard FileUtils and adds a few handy
extensions, so that's where you should be starting.