Sha256: 346d0e07a62359ec6754ed1367b78870da7f49205986e1d8ac28e9b043323ae6

Contents?: true

Size: 972 Bytes

Versions: 7

Compression:

Stored size: 972 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_here?
  end

  def reachable_statuses_for(user, discussion)
    if user.moderator_here?
      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

  def as_json(_options={})
    to_s
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
mumuki-domain-7.7.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.7.1 vendor/bundle/ruby/2.6.0/bundler/gems/mumuki-domain-cb7a9018bb94/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.7.0 vendor/bundle/ruby/2.6.0/bundler/gems/mumuki-domain-cb7a9018bb94/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.7.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.6.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.6.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.5.2 vendor/bundle/ruby/2.6.0/bundler/gems/mumuki-domain-ad16a5930cec/lib/mumuki/domain/status/discussion/discussion.rb