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