merged cont.
[opensuse:yast-rest-service.git] / webyast-tasks / lib / tasks / rake_rename_task.rb
1 #--
2 # Webyast Webservice framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19
20 # add rename_task method to Rake::Application
21 # it has an internal hash with name -> Rake::Task mapping
22 module Rake
23     class Application
24         def rename_task(task, oldname, newname)
25             if @tasks.nil?
26                 @tasks = {}
27             end
28
29             @tasks[newname.to_s] = task
30
31             if @tasks.has_key? oldname
32                 @tasks.delete oldname
33             end
34         end
35     end
36 end
37
38 # add new rename method to Rake::Task class
39 # to rename a task
40 class Rake::Task
41     def rename(new_name)
42         if !new_name.nil?
43             old_name = @name
44
45             if old_name == new_name
46                 return
47             end
48
49             @name = new_name.to_s
50             application.rename_task(self, old_name, new_name)
51         end
52     end
53 end
54
55 # vim: ft=ruby