Class: VMC::Space::Delete

Inherits:
Base
  • Object
show all
Defined in:
lib/vmc/cli/space/delete.rb

Instance Method Summary collapse

Methods inherited from Base

#precondition, space_by_name

Methods inherited from CLI

#check_logged_in, #check_target, #client, client, client=, #client_target, #color_enabled?, #default_action, #ensure_config_dir, #err, #execute, #fail, #force?, #invalidate_client, #log_error, #name_list, #no_v2, #one_of, #precondition, #quiet?, #remove_target_info, #sane_target_url, #save_target_info, #save_targets, #set_target, #table, #target_file, #target_info, #targets_info, #tokens_file, #user_colors, #v2?, #verbose?

Methods included from VMC::Spacing

#indented, #justify, #line, #lines, #quiet?, #spaced, #start_line, #tabular, #text_width, #trim_escapes

Methods included from Interactive

#ask, #handler, #input_state, #list_choices, #prompt, #show_default

Instance Method Details

#delete_spaceObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/vmc/cli/space/delete.rb', line 31

def delete_space
  org = input[:organization]
  spaces = input[:spaces, org]

  deleted_current = false

  spaces.each do |space|
    next unless input[:really, space]

    next unless clear_space(space)

    deleted_current ||= space == client.current_space

    with_progress("Deleting space #{c(space.name, :name)}") do
      space.delete!
    end
  end

  org.invalidate!

  if org.spaces.empty?
    return unless input[:warn]

    line
    line c("There are no longer any spaces in #{b(org.name)}.", :warning)
    line "You may want to create one with #{c("create-space", :good)}."
  elsif deleted_current
    invalidate_client
    invoke :target, :organization => client.current_organization
  end
end