Sha256: a2bde5328bb545914eb3f419a7a7a812332c9f6c49a3d41f99e252c78c4b4d6d

Contents?: true

Size: 929 Bytes

Versions: 30

Compression:

Stored size: 929 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
end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
mumuki-laboratory-7.5.1 vendor/bundle/ruby/2.3.0/bundler/gems/mumuki-domain-a059418e5fd8/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.5.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.5.0 vendor/bundle/ruby/2.6.0/bundler/gems/mumuki-domain-acb12583b793/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.5.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.4.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.4.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.3.2 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.3.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.2.3 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.3.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.2.2 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.2.1 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.2.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.1.0 vendor/bundle/ruby/2.3.0/bundler/gems/mumuki-domain-925adf85cca8/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.1.0 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-laboratory-7.0.12 vendor/bundle/ruby/2.3.0/bundler/gems/mumuki-domain-74da3d4af98c/lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.0.6 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.0.5 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.0.4 lib/mumuki/domain/status/discussion/discussion.rb
mumuki-domain-7.0.3 lib/mumuki/domain/status/discussion/discussion.rb