Class: RageRender::ChapterFromComicsGenerator
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- RageRender::ChapterFromComicsGenerator
- Defined in:
- lib/ragerender/jekyll/chapter.rb
Overview
Create chapter objects for any chapters listed in comics but that don’t currently have an explicit page created.
Instance Method Summary collapse
Instance Method Details
#generate(site) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ragerender/jekyll/chapter.rb', line 35 def generate site required = Set.new(site.collections['comics'].docs.map {|c| c.data['chapter'] }.reject(&:nil?)) existing = Set.new(site.collections['chapters'].docs.map {|c| c.data['slug'] }) missing = required - existing missing.each do |slug| Jekyll.logger.debug 'Adding chapter:', slug filename = Pathname.new(site.collections['chapters'].relative_directory).join("#{slug}.html") chapter = Jekyll::Document.new(filename.to_path, site: site, collection: site.collections['chapters']) chapter.send(:merge_defaults) chapter.data['slug'] ||= slug chapter.data['title'] ||= slug chapter.content = nil site.collections['chapters'].docs << chapter end end |