Sha256: 1ba707504398fda29581a98951663377a48373061772cc764dca57ee5f7f51cf
Contents?: true
Size: 1.58 KB
Versions: 9
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true module ThinkFeelDoEngine module Reports # Shared Lesson Module behavior. module LessonModule URL_ROOT_RE = %r{^[^\/]*\/\/[^\/]+} # Disabling method length due to nested methods. # rubocop:disable Metrics/MethodLength,Lint/NestedMethodDefinition def self.included(klass) class << klass # Returns a hash mapping lesson entry (first slide) path to Lesson # Module id. def lesson_entries_map lessons = ContentModules::LessonModule .includes(:content_providers).map do |m| first_provider_id = m.provider(1).try(:id) next unless first_provider_id path = navigator_location_path(module_id: m.id, provider_id: first_provider_id, content_position: 1) [path, m.id] end.compact Hash[lessons] end # Returns a hash mapping path to Lesson Module id. def lessons_map lessons = ContentModules::LessonModule.all.map do |m| path = navigator_location_path(module_id: m.id) [path, m.id] end Hash[lessons] end private def navigator_location_path(options) ThinkFeelDoEngine::Engine.routes.url_helpers .navigator_location_path(options) end end end # rubocop:enable Metrics/LineLength,Lint/NestedMethodDefinition end end end
Version data entries
9 entries across 9 versions & 1 rubygems