Sha256: 0467e57bcc78e019c44aa8a6a23606fed293e4986879a605f9f801eb61298a66

Contents?: true

Size: 919 Bytes

Versions: 18

Compression:

Stored size: 919 Bytes

Contents

module Mumuki::Domain::Status::Discussion
  include Mumuki::Domain::Status
end

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

module Mumuki::Domain::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

18 entries across 18 versions & 1 rubygems

Version Path
mumuki-domain-6.5.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.5.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.4.3 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.4.2 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.4.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.4.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.2.2 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.2.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.3.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.2.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.1.5 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.0.4 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.1.4 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.1.3 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.1.2 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.0.3 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.0.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-6.0.0 lib/mumuki/domain/status/discussion/discussion.rb