0

I am new to Ruby programming and Rakefile programming. I have written a code but the answer is not as expected

require './database'

desc "Show number of registered users"
task :report_registered_users do
   arr=Database.new.registered_users
   printf("Month     |   No. Of Users\n")
   printf("----------+----------------\n")
   arr.each do |row|
       printf("%s   |  %s\n",row[0],row[1])
   end
end


desc "Show number of registered devices"
task :report_registered_devices do
   arr=Database.new.registered_devices
   printf("Month     |   No. Of devices\n")
   printf("----------+----------------\n")
   arr.each do |row|
       printf("%s   |  %s\n",row[0],row[1])
   end
end

desc "Show number of unregistered users"
task :report_unregistered_users do
    arr=Database.new.unregistered_users
    printf("Month     |   No. Of Users\n")
    printf("----------+----------------\n")
    arr.each do |row|
        printf("%s   |  %s\n",row[0],row[1])
    end
end

desc "Show number of unregistered devices"
task :report_unregistered_devices do
   arr=Database.new.unregistered_devices
   printf("Month     |   No. Of devices\n")
   printf("----------+----------------\n")
   arr.each do |row|
       printf("%s   |  %s\n",row[0],row[1])
   end
end

desc "Show device per user"
task :report_device_per_user do
   arr=Database.new.device_per_user
   printf("No.of Devices     |   No. Of Users\n")
   printf("----------+----------------\n")
   arr.each do |row|
       printf("%s                  |  %s\n",row[0],row[1])
   end
end

The process of running the code is:

rake -T
rake report_registered_users

When I run the rate -T command the output is like this:

rake report_device_per_user         #Show device per user
rake report_registered_devices      #Show number of registered devices
rake report_registered_users        #Show number of registered users
rake report_unregistered_devices    #Show number of unregistered devices
rake report_unregistered_user       #Show number of unregistered user

But I want the output to be like this

rake report:device_per_user         #Show device per user
rake report:registered_devices      #Show number of registered devices
rake report:registered_users        #Show number of registered users
rake report:unregistered_devices    #Show number of unregistered devices
rake report:unregistered_user       #Show number of unregistered user

Notice, the small change in output report_device_per_user ----> report:device_per_user

Can someone help me with this solution.....thanks in advance It might be very basic but i am not able to do it

jackrabbit
  • 5,525
  • 1
  • 27
  • 38
user1932914
  • 176
  • 3
  • 9

1 Answers1

1

you need to namespace your tasks

so this ...

require './database'

desc "Show number of registered users"
task :report_registered_users do
  ...
end

would become this ...

require './database'

namespace :report do
  desc "Show number of registered users"
  task :registered_users do
    ...
  end
end
MilesStanfield
  • 4,571
  • 1
  • 21
  • 32