class Moodle2CC::Moodle2Converter::BookConverter

Public Instance Methods

convert(moodle_book) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 5
def convert(moodle_book)
  canvas_module = convert_moodle_book(moodle_book)
  moodle_book.chapters.each do |chapter|
    canvas_module.module_items << convert_moodle_chapter(moodle_book, chapter)
  end
  canvas_module
end
convert_to_module_items(moodle_book) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 36
def convert_to_module_items(moodle_book)
  module_items = []
  module_items << create_title(moodle_book)
  module_items << create_introduction(moodle_book) if moodle_book.intro && moodle_book.intro.length > 0
  module_items += moodle_book.chapters.map { |chapter| create_chapter(chapter) }
  module_items
end
convert_to_pages(moodle_book) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 13
def convert_to_pages(moodle_book)
  pages = moodle_book.chapters.map do |moodle_chapter|
    page = create_page(moodle_chapter.title)
    page.identifier = generate_unique_identifier_for_activity(moodle_chapter)
    page.body = moodle_chapter.content
    page.workflow_state = workflow_state(moodle_book.visible)
    page
  end

  if moodle_book.intro && moodle_book.intro.length > 0
    page = create_page(moodle_book.name)
    page.identifier = generate_unique_identifier_for_activity(moodle_book)
    page.body = moodle_book.intro
    if pages.any?{|p| page.title == p.title}
      page.title = "#{truncate_text(page.title, MAX_TITLE_LENGTH - 20)} (Introduction)"
    end
    page.workflow_state = workflow_state(moodle_book.visible)
    pages.unshift(page)
  end

  pages
end

Private Instance Methods

create_chapter(moodle_chapter) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 67
def create_chapter(moodle_chapter)
  module_item = create_module_item_with_defaults()
  module_item.title = truncate_text(moodle_chapter.title)
  module_item.indent = moodle_chapter.subchapter ? "2" : "1"
  module_item.identifierref = get_unique_identifier_for_activity(moodle_chapter)
  module_item.workflow_state = CanvasCC::Models::WorkflowState::UNPUBLISHED if moodle_chapter.hidden

  module_item
end
create_introduction(moodle_book) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 57
def create_introduction(moodle_book)
  module_item = create_module_item_with_defaults()
  module_item.title = 'Introduction'
  module_item.indent = '1'
  module_item.identifierref = get_unique_identifier_for_activity(moodle_book)
  module_item.workflow_state = workflow_state(moodle_book.visible)

  module_item
end
create_module_item_with_defaults() click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 77
def create_module_item_with_defaults
  module_item = CanvasCC::Models::ModuleItem.new
  module_item.identifier = generate_unique_identifier()
  module_item.content_type = CanvasCC::Models::ModuleItem::CONTENT_TYPE_WIKI_PAGE
  module_item.workflow_state = CanvasCC::Models::WorkflowState::ACTIVE
  module_item
end
create_page(title) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 85
def create_page(title)
  page = CanvasCC::Models::Page.new
  page.type = CanvasCC::Models::Resource::WEB_CONTENT_TYPE
  page.href = generate_unique_resource_path(CanvasCC::Models::Page::BOOK_PATH, title)
  page.title = truncate_text(title)
  page.workflow_state = CanvasCC::Models::WorkflowState::ACTIVE
  page.editing_roles = CanvasCC::Models::Page::EDITING_ROLE_TEACHER
  page
end
create_title(moodle_book) click to toggle source
# File lib/moodle2cc/moodle2converter/book_converter.rb, line 46
def create_title(moodle_book)
  module_item = create_module_item_with_defaults()
  module_item.content_type = Moodle2CC::CanvasCC::Models::ModuleItem::CONTENT_TYPE_CONTEXT_MODULE_SUB_HEADER
  module_item.title = truncate_text(moodle_book.name)
  module_item.indent = "0"
  module_item.identifier = generate_unique_identifier()
  module_item.workflow_state = workflow_state(moodle_book.visible)

  module_item
end