class Playgroundbook::ContentsManifestGenerator

Public Class Methods

new(ui = Cork::Board.new) click to toggle source
# File lib/renderer/contents_manifest_generator.rb, line 5
def initialize(ui = Cork::Board.new)
  @ui = ui
end

Public Instance Methods

generate(book_metadata) click to toggle source
# File lib/renderer/contents_manifest_generator.rb, line 9
def generate(book_metadata)
  @ui.puts "Generating main manifest file."
  write_manifest_file(book_metadata)
  @ui.puts "Manifest file generated."
end
manifest_contents(book_metadata) click to toggle source
# File lib/renderer/contents_manifest_generator.rb, line 21
def manifest_contents(book_metadata)
  chapters = book_metadata["chapters"].map { |c| "#{c["name"]}.playgroundchapter" }
  manifest_contents = {
    "Name" => book_metadata["name"],
    "ContentIdentifier" => book_metadata["identifier"],
    "DeploymentTarget" => book_metadata["deployment_target"] || "ios10.0",
    "Chapters" => chapters,
    "Version" => "1.0",
    "ContentVersion" => "1.0"
  }
  manifest_contents["ImageReference"] = book_metadata["cover"] unless book_metadata["cover"].nil?
  manifest_contents["SwiftVersion"] = book_metadata["swift_version"] unless book_metadata["swift_version"].nil?
  manifest_contents
end
write_manifest_file(book_metadata) click to toggle source
# File lib/renderer/contents_manifest_generator.rb, line 15
def write_manifest_file(book_metadata)
  File.open(ManifestFileName, "w") do |file|
    file.write(manifest_contents(book_metadata).to_plist)
  end
end