Module: Mumuki::Domain::Status::Discussion

Includes:
Mumuki::Domain::Status
Included in:
Closed, Opened, PendingReview, Solved
Defined in:
lib/mumuki/domain/status/discussion/discussion.rb,
lib/mumuki/domain/status/discussion/discussion.rb

Defined Under Namespace

Modules: Closed, Opened, PendingReview, Solved

Constant Summary collapse

STATUSES =
[Opened, Closed, Solved, PendingReview]

Instance Method Summary collapse

Methods included from Mumuki::Domain::Status

#==, #to_i, #to_s, #to_sym

Instance Method Details

#allowed_for?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 17

def allowed_for?(*)
  true
end

#allowed_statuses_for(user, discussion) ⇒ Object



41
42
43
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 41

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

#as_json(_options = {}) ⇒ Object



45
46
47
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 45

def as_json(_options={})
  to_s
end

#reachable_statuses_for(user, discussion) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 33

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

#reachable_statuses_for_initiatorObject



25
26
27
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 25

def reachable_statuses_for_initiator(*)
  []
end

#reachable_statuses_for_moderatorObject



21
22
23
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 21

def reachable_statuses_for_moderator(*)
  []
end

#should_be_shown?(count, user) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/mumuki/domain/status/discussion/discussion.rb', line 29

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