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

Version Path
think_feel_do_engine-3.22.7 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.6 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.5 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.4 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.2 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.1 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.22.0 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.21.2 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.21.1 app/models/think_feel_do_engine/reports/lesson_module.rb