Class: Vivlio::Starter::CLI::DeleteCommands::DeleteOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/vivlio/starter/cli/delete.rb

Overview

CLI オプションを正規化し、各種フラグへのアクセスを提供する

異なる形式のオプション入力(Hash / Samovar コマンド)を統一的なインターフェースで扱えるようにする

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ DeleteOptions

Returns a new instance of DeleteOptions.

Parameters:

  • source (Hash, Object)

    オプションソース

    • Hash: { force: true, dry_run: false }

    • Object: #options で Hash を返すオブジェクト



100
101
102
# File 'lib/vivlio/starter/cli/delete.rb', line 100

def initialize(source)
  @option_values = extract_option_values(source)
end

Instance Method Details

#apply_verbose!Object

verbose オプションが有効な場合、環境変数を設定してログを詳細化する



105
106
107
# File 'lib/vivlio/starter/cli/delete.rb', line 105

def apply_verbose!
  ENV['VERBOSE'] = '1' if verbose?
end

#dry_run?Boolean

Returns dry-run モードが有効か.

Returns:

  • (Boolean)

    dry-run モードが有効か



118
119
120
# File 'lib/vivlio/starter/cli/delete.rb', line 118

def dry_run?
  !!option_values[:dry_run]
end

#force?Boolean

Returns force モードが有効か(–yes も同義).

Returns:

  • (Boolean)

    force モードが有効か(–yes も同義)



123
124
125
# File 'lib/vivlio/starter/cli/delete.rb', line 123

def force?
  !!(option_values[:force] || option_values[:yes])
end

#verbose?Boolean

Returns verbose モードが有効か.

Returns:

  • (Boolean)

    verbose モードが有効か



128
129
130
# File 'lib/vivlio/starter/cli/delete.rb', line 128

def verbose?
  !!option_values[:verbose]
end

#warn_conflict!Object

dry-run と force の同時指定は矛盾するため警告を出力するdry-run が優先され、force は無視される



111
112
113
114
115
# File 'lib/vivlio/starter/cli/delete.rb', line 111

def warn_conflict!
  return unless dry_run? && force?

  Common.log_warn('--dry-run が指定されているため、--force は無視されます。実ファイルは変更されません。')
end