Class: Gzr::Commands::Model::Set::Import

Inherits:
Gzr::Command show all
Includes:
FileHelper, Model::Set
Defined in:
lib/gzr/commands/model/set/import.rb

Instance Method Summary collapse

Methods included from FileHelper

#read_file, #write_file

Methods included from Model::Set

#all_model_sets, #cat_model_set, #create_model_set, #delete_model_set, #search_model_sets, #trim_model_set, #update_model_set

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(file, options) ⇒ Import

Returns a new instance of Import.



36
37
38
39
40
# File 'lib/gzr/commands/model/set/import.rb', line 36

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

Instance Method Details

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



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/gzr/commands/model/set/import.rb', line 42

def execute(input: $stdin, output: $stdout)
  say_warning("options: #{@options.inspect}", output: output) if @options[:debug]
  with_session do
    model_set = nil

    read_file(@file) do |data|
      search_results = search_model_sets(name: data[:name])
      if search_results && search_results.length == 1
        name = data[:name]
        if !@options[:force]
          raise Gzr::CLI::Error, "Model Set #{name} already exists\nUse --force if you want to overwrite it"
        end
        data.select! do |k,v|
          keys_to_keep('update_model_set').include? k
        end
        model_set = update_model_set(search_results.first[:id], data)
      else
        data.select! do |k,v|
          keys_to_keep('create_model_set').include? k
        end
        model_set = create_model_set(data)
      end
      output.puts "Imported model set #{model_set[:id]}" unless @options[:plain]
      output.puts model_set[:id] if @options[:name]
    end
  end
end