Class: Discuss::Message
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Discuss::Message
- Defined in:
- app/models/discuss/message.rb
Instance Attribute Summary collapse
-
#draft ⇒ Object
Returns the value of attribute draft.
Instance Method Summary collapse
- #active? ⇒ Boolean
- #delete! ⇒ Object
-
#draft? ⇒ Boolean
passed in from the compose form.
- #mailbox ⇒ Object
- #read! ⇒ Object
- #receive! ⇒ Object
- #recipient_list ⇒ Object
- #recipients ⇒ Object
- #recipients=(users) ⇒ Object
- #reply!(options = {}) ⇒ Object
- #send! ⇒ Object
- #sender ⇒ Object
- #sent_date ⇒ Object
- #trash! ⇒ Object
- #uneditable? ⇒ Boolean
- #unread? ⇒ Boolean
- #unsent? ⇒ Boolean
Instance Attribute Details
#draft ⇒ Object
Returns the value of attribute draft.
7 8 9 |
# File 'app/models/discuss/message.rb', line 7 def draft @draft end |
Instance Method Details
#active? ⇒ Boolean
39 40 41 |
# File 'app/models/discuss/message.rb', line 39 def active? !trashed? && !deleted? end |
#delete! ⇒ Object
98 99 100 |
# File 'app/models/discuss/message.rb', line 98 def delete! update(deleted_at: Time.zone.now) end |
#draft? ⇒ Boolean
passed in from the compose form
121 122 123 |
# File 'app/models/discuss/message.rb', line 121 def draft? self.draft == '1' end |
#mailbox ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'app/models/discuss/message.rb', line 59 def mailbox case when sent? then :outbox when received? then :inbox when !new_record? && unsent? then :drafts when trashed? then :trash else :compose end end |
#read! ⇒ Object
90 91 92 |
# File 'app/models/discuss/message.rb', line 90 def read! update(read_at: Time.zone.now) end |
#receive! ⇒ Object
86 87 88 |
# File 'app/models/discuss/message.rb', line 86 def receive! update(received_at: Time.zone.now) end |
#recipient_list ⇒ Object
55 56 57 |
# File 'app/models/discuss/message.rb', line 55 def recipient_list draft_recipient_ids.reject(&:blank?).map {|id| User.find id} end |
#recipients ⇒ Object
47 48 49 |
# File 'app/models/discuss/message.rb', line 47 def recipients sent? ? children.collect(&:user) : parent.recipients end |
#recipients=(users) ⇒ Object
51 52 53 |
# File 'app/models/discuss/message.rb', line 51 def recipients= users users.each { |u| draft_recipient_ids << u.id } end |
#reply!(options = {}) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'app/models/discuss/message.rb', line 76 def reply! ={} if parent reply = children.create!(subject: .fetch(:subject, subject), body: .fetch(:body, nil), user: user, recipients: [parent.user]) reply.send! end end |
#send! ⇒ Object
70 71 72 73 74 |
# File 'app/models/discuss/message.rb', line 70 def send! lock.synchronize do Discuss::MessageSender.new(self).run unless draft? end end |
#sender ⇒ Object
43 44 45 |
# File 'app/models/discuss/message.rb', line 43 def sender sent? ? user : parent.user end |
#sent_date ⇒ Object
125 126 127 |
# File 'app/models/discuss/message.rb', line 125 def sent_date sent_at || received_at end |
#trash! ⇒ Object
94 95 96 |
# File 'app/models/discuss/message.rb', line 94 def trash! update(trashed_at: Time.zone.now) end |
#uneditable? ⇒ Boolean
112 113 114 |
# File 'app/models/discuss/message.rb', line 112 def uneditable? !editable? end |
#unread? ⇒ Boolean
108 109 110 |
# File 'app/models/discuss/message.rb', line 108 def unread? !read? end |
#unsent? ⇒ Boolean
116 117 118 |
# File 'app/models/discuss/message.rb', line 116 def unsent? !sent? end |