Sha256: 03db6b514eef7fd0f1d3b21eb26a4d126c333750a224492bdd6cbac3b631c385

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 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)
                      .order("bit_core_content_providers.position").map do |m|
              first_provider_id = m.content_providers.first.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

2 entries across 2 versions & 1 rubygems

Version Path
think_feel_do_engine-3.22.9 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.8 app/models/think_feel_do_engine/reports/lesson_module.rb