class LessonsIndexer::Indexer
Attributes
options[R]
Public Class Methods
new(options)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 8 def initialize(options) @options = options end
Public Instance Methods
add_headings(course)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 35 def add_headings(course) course.load_lessons! course.load_headings! with_messages(pou('heading.starting'), pou('heading.done', title: course.title)) do course.generate_headings { |heading_line, lesson_file| prepend!(heading_line, lesson_file) } end end
build_index(course)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 28 def build_index(course) course.load_lessons! with_messages(pou('index.starting'), pou('index.done', title: course.title)) do write! course.generate_index, options.output end end
do_work!()
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 12 def do_work! course = Course.new(get_course_dir, options.headings_dir) generate_files(course) if options.lessons.length > 0 build_index(course) unless options.skip_index add_headings(course) if options.headings generate_pdfs(course) if options.pdf git_push! if options.git end
generate_files(course)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 22 def generate_files(course) with_messages(pou('lessons.starting'), pou('lessons.done', title: course.title)) do course.generate_files(options.lessons) end end
generate_pdfs(course)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 43 def generate_pdfs(course) course.load_lessons! with_messages(pou('pdf.starting'), pou('pdf.done', title: course.title)) do course.generate_pdfs end end
get_course_dir()
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 50 def get_course_dir dir = Dir.entries('.').detect {|el| el =~ /_handouts\z/i} exit_msg(pou('errors.files_not_found')) if dir.nil? dir end
Private Instance Methods
git_push!()
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 68 def git_push! pusher = Pusher.new(options.message) pusher.push! end
prepend!(contents, file)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 63 def prepend!(contents, file) writer = Writer.new(file) writer.prepend_data(contents) end
write!(contents, file)
click to toggle source
# File lib/lessons_indexer/indexer.rb, line 58 def write!(contents, file) writer = Writer.new(file) writer << contents end