11class LuckyTask::Runner
22 @@tasks = [] of LuckyTask ::Task
3- class_property? exit_with_error_if_not_found = true
3+ class_property? exit_with_error_if_not_found : Bool = true
44
55 extend LuckyTask ::TextHelpers
66
7- def self.tasks
7+ def self.register_task (task : LuckyTask ::Task ) : Nil
8+ @@tasks .push(task)
9+ end
10+
11+ def self.tasks : Array (LuckyTask ::Task )
812 @@tasks .sort_by!(& .task_name)
913 end
1014
@@ -32,7 +36,7 @@ class LuckyTask::Runner
3236 end
3337 end
3438
35- def self.help_text
39+ def self.help_text : Nil
3640 puts <<-HELP_TEXT
3741 Usage: lucky name.of.task [options]
3842
@@ -42,11 +46,11 @@ class LuckyTask::Runner
4246 HELP_TEXT
4347 end
4448
45- def self.find_task (task_name : String )
49+ def self.find_task (task_name : String ) : LuckyTask :: Task ?
4650 @@tasks .find { |task | task.task_name == task_name }
4751 end
4852
49- def self.tasks_list
53+ def self.tasks_list : String
5054 String .build do |list |
5155 tasks.each do |task |
5256 list << (" #{ arrow } " + task.task_name).colorize(:green )
@@ -57,11 +61,11 @@ class LuckyTask::Runner
5761 end
5862 end
5963
60- def self.list_padding_for (task_name )
64+ def self.list_padding_for (task_name ) : String
6165 " " * (longest_task_name - task_name.size + 2 )
6266 end
6367
64- def self.longest_task_name
68+ def self.longest_task_name : Int32
6569 tasks.max_of(& .task_name.size)
6670 end
6771end
0 commit comments