Class: VivlioStarter::CLI::DeleteCommands::ChapterDeletion

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

Overview

章ファイルと関連リソースの削除処理を担う

削除対象:

- contents/XX-slug.md(章 Markdown)
- images/XX-slug/(章画像ディレクトリ)
- config/catalog.yml 内の該当エントリ

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ChapterDeletion

Returns a new instance of ChapterDeletion.

Parameters:

  • options (DeleteOptions)

    削除オプション(force 判定などに使用)



179
180
181
# File 'lib/vivlio_starter/cli/delete.rb', line 179

def initialize(options)
  @options = options
end

Instance Method Details

#remove(basename) ⇒ DeleteSummary

章ファイルと関連リソースを削除する

副作用:

- contents/XX-slug.md を削除
- images/XX-slug/ ディレクトリを削除
- config/catalog.yml から該当エントリを削除

Parameters:

  • basename (String)

    章ファイル名(例: "11-install.md")

Returns:



192
193
194
195
196
197
198
199
200
201
# File 'lib/vivlio_starter/cli/delete.rb', line 192

def remove(basename)
  documents = delete_markdown_file(basename) ? 1 : 0
  image_dirs = delete_image_directory(basename) ? 1 : 0

  # catalog.yml からも削除することで build 時に含まれなくなる
  base = basename.sub(/\.md\z/, '')
  Build::CatalogUpdater.remove_chapter(base)

  DeleteSummary.new(documents: documents, image_dirs: image_dirs)
end