class Playgroundbook::ChapterManifestLinter
A linter for verifying the contents of a chapter's Manifest.plist
Attributes
cutscene_page_linter[RW]
page_linter[RW]
Public Class Methods
new(page_linter = PageLinter.new, cutscene_page_linter = CutscenePageLinter.new)
click to toggle source
# File lib/linter/chapter_manifest_linter.rb, line 10 def initialize(page_linter = PageLinter.new, cutscene_page_linter = CutscenePageLinter.new) @page_linter = page_linter @cutscene_page_linter = cutscene_page_linter end
Public Instance Methods
chapter_has_manifest_pages?()
click to toggle source
# File lib/linter/chapter_manifest_linter.rb, line 39 def chapter_has_manifest_pages? value_defined_in_manifest?("Pages") end
lint()
click to toggle source
Calls superclass method
# File lib/linter/chapter_manifest_linter.rb, line 15 def lint super() fail_lint "Chapter has no pages in #{Dir.pwd}" unless chapter_has_manifest_pages? manifest_plist_contents["Pages"].each do |page_directory_name| # All pages exist inside the /Pages subdirectory, we need to chdir to there first. Dir.chdir PAGES_DIRECTORY_NAME do fail_lint "Chapter page directory #{page_directory_name} missing in #{Dir.pwd}" unless Dir.exist?(page_directory_name) lint_page page_directory_name end end end
lint_page(page_directory_name)
click to toggle source
# File lib/linter/chapter_manifest_linter.rb, line 29 def lint_page(page_directory_name) Dir.chdir page_directory_name do if page_directory_name =~ /.+\.playgroundpage$/ page_linter.lint elsif page_directory_name =~ /.+\.cutscenepage$/ cutscene_page_linter.lint end end end