Sha256: a0335fba7acef9a1fbc21126f1d967846fa79ae4075ccb0376a69adec7801182

Contents?: true

Size: 1.1 KB

Versions: 10

Compression:

Stored size: 1.1 KB

Contents

module Nucleon
module Action
class Remove < Nucleon.plugin_class(:action)
  
  include Mixin::Action::Project
  include Mixin::Action::Push
 
  #-----------------------------------------------------------------------------
  # Settings
  
  def configure
    super do    
      codes :project_failure,
            :delete_failure,
            :push_failure
      
      register :path, :str, Dir.pwd       
      register :sub_path, :str, nil
      
      project_config
      push_config
    end
  end
  
  #---
  
  def ignore
    [ :project_reference ]
  end
  
  def arguments
    [ :sub_path ]
  end
 
  #-----------------------------------------------------------------------------
  # Operations
  
  def execute
    super do
      info('nucleon.actions.remove.start')
      
      if project = project_load(settings[:path], false)
        if project.delete_subproject(settings[:sub_path])
          myself.status = code.push_failure unless push(project)
        else
          myself.status = code.delete_failure
        end
      else
        myself.status = code.project_failure  
      end
    end
  end
end
end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
nucleon-0.1.19 lib/nucleon/action/remove.rb
nucleon-0.1.18 lib/nucleon/action/remove.rb
nucleon-0.1.17 lib/nucleon/action/remove.rb
nucleon-0.1.16 lib/nucleon/action/remove.rb
nucleon-0.1.15 lib/nucleon/action/remove.rb
nucleon-0.1.14 lib/nucleon/action/remove.rb
nucleon-0.1.13 lib/nucleon/action/remove.rb
nucleon-0.1.12 lib/nucleon/action/remove.rb
nucleon-0.1.11 lib/nucleon/action/remove.rb
nucleon-0.1.10 lib/nucleon/action/remove.rb