Sha256: 812b98cfb1714f9e5fd21b7e1be6dc5c5c0f8a2ff2e5bbfc1d6a15a18e071a9a

Contents?: true

Size: 1.49 KB

Versions: 26

Compression:

Stored size: 1.49 KB

Contents

module ThinkFeelDoEngine
  module Reports
    # Shared Lesson Module behavior.
    module LessonModule
      URL_ROOT_RE = /^[^\/]*\/\/[^\/]+/
      # Disabling method length due to nested methods.
      # rubocop:disable Metrics/MethodLength
      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
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
think_feel_do_engine-3.19.7 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.6 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.5 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.4 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.3 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.2 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.1 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.19.0 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.18.0 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.17.2 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.17.1 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.17.0 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.16.3 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.16.2 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.16.1 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.15.7 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.16.0 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.15.6 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.15.5 app/models/think_feel_do_engine/reports/lesson_module.rb
think_feel_do_engine-3.15.4 app/models/think_feel_do_engine/reports/lesson_module.rb