Sha256: 1f87543c9787b42c1e81835d19f22c2e4b17949b90ca4836f6144caf0613590f

Contents?: true

Size: 931 Bytes

Versions: 11

Compression:

Stored size: 931 Bytes

Contents

module Mumuki::Laboratory::Status::Discussion
  include Mumuki::Laboratory::Status
end

require_relative './opened'
require_relative './closed'
require_relative './solved'
require_relative './pending_review'

module Mumuki::Laboratory::Status::Discussion
  STATUSES = [Opened, Closed, Solved, PendingReview]

  test_selectors.each do |selector|
    define_method(selector) { false }
  end

  def allowed_for?(*)
    true
  end

  def reachable_statuses_for_moderator(*)
    []
  end

  def reachable_statuses_for_initiator(*)
    []
  end

  def should_be_shown?(count, user)
    count > 0 || user&.moderator?
  end

  def reachable_statuses_for(user, discussion)
    if user.moderator?
      reachable_statuses_for_moderator(discussion)
    else
      reachable_statuses_for_initiator(discussion)
    end
  end

  def allowed_statuses_for(user, discussion)
    STATUSES.select { |it| it.allowed_for?(user, discussion) }
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
mumuki-laboratory-5.13.0 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.12.1 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.12.0 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.11.0 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.10.4 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.10.3 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.10.2 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.10.1 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.10.0 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.9.1 lib/mumuki/laboratory/status/discussion/discussion.rb
mumuki-laboratory-5.9.0 lib/mumuki/laboratory/status/discussion/discussion.rb