Class: Gzr::Commands::Attribute::Create

Inherits:
Gzr::Command show all
Includes:
Attribute
Defined in:
lib/gzr/commands/attribute/create.rb

Instance Method Summary collapse

Methods included from Attribute

#create_attribute, #delete_user_attribute, #get_attribute_by_label, #get_attribute_by_name, #query_all_user_attribute_group_values, #query_all_user_attributes, #query_user_attribute, #query_user_attribute_group_value, #update_attribute, #upsert_user_attribute

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(name, label, options) ⇒ Create

Returns a new instance of Create.



32
33
34
35
36
37
# File 'lib/gzr/commands/attribute/create.rb', line 32

def initialize(name,label,options)
  super()
  @name = name
  @label = label || @name.split(/ |\_|\-/).map(&:capitalize).join(" ")
  @options = options
end

Instance Method Details

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



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

def execute(input: $stdin, output: $stdout)
  say_warning(@options) if @options[:debug]
  with_session do
    source = { :name=>@name, :label=>@label, :type=>@options[:type] }
    source[:'default_value'] = @options[:'default-value'] if @options[:'default-value']
    source[:'value_is_hidden'] = true if @options[:'is-hidden']
    source[:'user_can_view'] = true if @options[:'can-view']
    source[:'user_can_edit'] = true if @options[:'can-edit']
    source[:'hidden_value_domain_allowlist'] = @options[:'domain-allowlist'] if @options[:'is-hidden'] && @options[:'domain-allowlist']

    attr = upsert_user_attribute(source, @options[:force], output: $stdout)
    output.puts "Imported attribute #{attr[:name]} #{attr[:id]}" unless @options[:plain]
    output.puts attr.id if @options[:plain]
  end
end