Class: Vivlio::Starter::CLI::DeleteCommands::TargetResolver

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

Overview

ユーザー入力トークンから削除対象の章ファイルを解決する

TokenResolver を使用してトークンを Entry に変換し、カタログまたはファイルシステム上に存在する章を対象とする。

Instance Method Summary collapse

Constructor Details

#initialize(tokens) ⇒ TargetResolver

Returns a new instance of TargetResolver.

Parameters:

  • tokens (Array<String>)

    ユーザー入力のトークンリスト



156
157
158
159
# File 'lib/vivlio/starter/cli/delete.rb', line 156

def initialize(tokens)
  @tokens = tokens
  @resolver = TokenResolver::Resolver.new
end

Instance Method Details

#targetsArray<String>

削除対象として解決された章ファイル名の一覧を返す

Returns:

  • (Array<String>)

    ファイル名リスト(例: [“11-install.md”, “12-setup.md”])



169
170
171
172
173
174
# File 'lib/vivlio/starter/cli/delete.rb', line 169

def targets
  @targets ||= resolved_entries
               .select { |e| e.in_catalog? || e.exists? }
               .map { |e| "#{e.basename}.md" }
               .uniq
end

#tokens_for_messageString

ログ出力用にトークンを空白区切りで結合する

Returns:

  • (String)

    表示用トークン文字列



163
164
165
# File 'lib/vivlio/starter/cli/delete.rb', line 163

def tokens_for_message
  resolved_entries.map(&:basename).join(' ')
end