2015-12-24 2 views
0

Je suis nouveau dans la programmation Ruby et la programmation Rakefile. J'ai écrit un code, mais la réponse est pas comme prévuQuelques modifications dans Rakefile

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 

Le processus d'exécution du code est:

rake -T 
rake report_registered_users 

Quand je lance le taux -T commande la sortie est comme ceci:

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 

Mais je veux que la sortie soit comme celui-ci

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 

avis, la petite variation de la production report_device_per_user ----> Rapport: device_per_user

quelqu'un peut me aider avec cette solution ..... merci à l'avance Il pourrait être très basique mais je ne suis pas en mesure de le faire

+1

Faire rapport un espace de noms contenant les autres tâches: http://stackoverflow.com/questions/15106414/rake-default-task-and-namespaces#15213296 – jackrabbit

+0

Merci beaucoup pour l'aide ... J'étais capable d'obtenir le résultat attendu – user1932914

Répondre

1

vous devez namespace vos tâches

donc ce ...

require './database' 

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

deviendrait cette ...

require './database' 

namespace :report do 
    desc "Show number of registered users" 
    task :registered_users do 
    ... 
    end 
end