Class: S7n::S7nCli::EntryEditCommand

Inherits:
Command
  • Object
show all
Includes:
EntryCommandUtils
Defined in:
lib/s7n/s7ncli/entry_command.rb

Overview

機密情報を追加するコマンドを表現する。

Constant Summary

Constants included from EntryCommandUtils

S7n::S7nCli::EntryCommandUtils::EDITING_USAGE

Instance Attribute Summary

Attributes inherited from Command

#config, #options, #world

Instance Method Summary collapse

Methods included from EntryCommandUtils

#apply_entry_changes, #command_loop, #dispatch_command, #display_entry, #input_attribute_name, #input_attribute_type, #input_secret, #input_tags, #input_value

Methods inherited from Command

#aliases, create_instance, #description, #help, #name, #option_parser, split_name_and_argv, #usage

Constructor Details

#initialize(*args) ⇒ EntryEditCommand

Returns a new instance of EntryEditCommand.



404
405
406
407
# File 'lib/s7n/s7ncli/entry_command.rb', line 404

def initialize(*args)
  super
  @options.push(IntOption.new("i", "id", "ID", _("Entry ID.")))
end

Instance Method Details

#run(argv) ⇒ Object

コマンドを実行する。



416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
# File 'lib/s7n/s7ncli/entry_command.rb', line 416

def run(argv)
  option_parser.parse!(argv)
  if argv.length > 0
    config["id"] = argv.shift.to_i
  end
  if config["id"].nil?
    puts(_("Too few arguments."))
    help
    return true
  end
  @entry = world.entry_collection.find(config["id"])
  if @entry.nil?
    raise NoSuchEntry.new("id" => config["id"])
  end
  puts(_("Edit the entry."))
  @attributes = @entry.duplicate_attributes
  @tags = @entry.tags.dup
  if @tags.empty?
    @tags = input_tags(@tags) || []
  end
  command_loop
  return true
end

#saveObject

機密情報を追加する。



410
411
412
413
# File 'lib/s7n/s7ncli/entry_command.rb', line 410

def save
  # TODO: undo スタックに操作を追加する。
  apply_entry_changes
end