Class: Gzr::Commands::Folder::Rm

Inherits:
Gzr::Command show all
Includes:
Folder
Defined in:
lib/gzr/commands/folder/rm.rb

Instance Method Summary collapse

Methods included from Folder

#all_folders, #create_folder, #delete_folder, included, #process_args, #query_folder, #query_folder_children, #search_folders

Methods inherited from Gzr::Command

#all_color_collections, #color_collection, #color_palette_lookup!, #create_merge_query, #create_query, #default_color_collection, #field_expressions_eval, #field_names, #find_color_palette_reference, #find_vis_config_reference, #get_auth, #get_user_by_id, #keys_to_keep, #keys_to_keep_internal, #merge_query, #pairs, #query, #render_csv, #rewrite_color_palette!, #run_inline_query, #update_color_palette!

Methods included from Session

#build_connection_hash, #login, #logout_all, #pastel, #read_token_data, #say_error, #say_ok, #say_warning, #sufficient_version?, #token_file, #update_auth, #with_session, #write_token_data

Constructor Details

#initialize(folder, options) ⇒ Rm

Returns a new instance of Rm.



32
33
34
35
36
# File 'lib/gzr/commands/folder/rm.rb', line 32

def initialize(folder,options)
  super()
  @folder = folder
  @options = options
end

Instance Method Details

#execute(input: $stdin, output: $stdout) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/gzr/commands/folder/rm.rb', line 38

def execute(input: $stdin, output: $stdout)
  with_session do
    folder = query_folder(@folder)

    begin
      puts "Folder #{@folder} not found"
      return nil
    end unless folder
    children = query_folder_children(@folder)
    unless (folder[:looks].length == 0 && folder[:dashboards].length == 0 && children.length == 0) || @options[:force] then
      raise Gzr::CLI::Error, "Folder '#{folder[:name]}' is not empty. Folder cannot be deleted unless --force is specified"
    end
    delete_folder(@folder)
  end
end