Class: Machinery::RemoveTask

Inherits:
Object
  • Object
show all
Defined in:
lib/remove_task.rb

Overview

Copyright © 2013-2016 SUSE LLC

This program is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, contact SUSE LLC.

To contact SUSE about this file by physical or electronic mail, you may find current contact information at www.suse.com

Instance Method Summary collapse

Instance Method Details

#remove(store, names, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/remove_task.rb', line 19

def remove(store, names, options = {})
  if options[:all]
    removed_descriptions = store.list
    removed_descriptions.each do |name|
      store.remove(name)
    end

    if options[:verbose]
      Machinery::Ui.puts "Removed #{removed_descriptions.length} system descriptions successfully."
    end
  end

  errors = []

  Array(names).each do |name|
    if !store.list.include?(name)
      errors.push("System description '#{name}' does not exist.")
    else
      store.remove(name)
      if options[:verbose]
        Machinery::Ui.puts "System description '#{name}' successfully removed."
      end
    end
  end

  unless errors.empty?
    raise Machinery::Errors::SystemDescriptionNotFound.new(errors.join("\n"))
  end
end