Sha256: c27667d872202c535e312ca5bb34f10bc67450057a655a70b98c39ee899e8c7d

Contents?: true

Size: 907 Bytes

Versions: 2

Compression:

Stored size: 907 Bytes

Contents

module Concerns
  # Determines whether a participant can access a lesson
  module Accessibility
    def accessible?
      available_for_learning_on <= Date.today
    end

    def available_for_learning_on
      membership.start_date + release_day - 1
    end

    def completed?
      completed_at.present?
    end

    def previous_completed?
      return false unless learning_task_status_index
      return true if learning_task_status_first?
      self
        .class
        .find_by_id(learning_task_statuses.ids[learning_task_status_index - 1])
        .completed?
    end

    private

    def learning_task_status_first?
      learning_task_status_index.zero?
    end

    def learning_task_status_index
      learning_task_statuses
        .ids
        .find_index(id)
    end

    def learning_task_statuses
      membership
        .ordered_task_statuses
        .for_learning
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
think_feel_do_engine-3.14.3 app/models/concerns/accessibility.rb
think_feel_do_engine-3.14.2 app/models/concerns/accessibility.rb