class Nucleon::Action::Project::Add

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/project/add.rb
13 def self.describe
14   super(:project, :add, 700)
15 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/project/add.rb
40 def arguments
41   [ :sub_path, :sub_reference ]
42 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/project/add.rb
20 def configure
21   super do    
22     codes :project_failure,
23           :add_failure,
24           :push_failure
25     
26     register_str :path, Dir.pwd        
27     register_str :sub_path, nil
28     
29     register_project :sub_reference, nil
30     
31     register_bool :editable
32     
33     project_config
34     push_config
35   end
36 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/project/add.rb
47 def execute
48   super do
49     info('start')
50     
51     if project = project_load(settings[:path], false)
52       sub_info = project.translate_reference(settings[:sub_reference], settings[:editable])
53       sub_path = settings[:sub_path]
54         
55       if sub_info
56         sub_url      = sub_info[:url]
57         sub_revision = sub_info[:revision]
58       else
59         sub_url      = settings[:sub_reference]
60         sub_revision = nil
61       end
62         
63       if project.add_subproject(sub_path, sub_url, sub_revision)
64         myself.status = code.push_failure unless push(project)
65       else
66         myself.status = code.add_failure
67       end
68     else
69       myself.status = code.project_failure               
70     end
71   end
72 end