Sha256: 6ad58b698400f034d36f576b63fdfba04c4fe4f66d5773ec8850d733615fc054
Contents?: true
Size: 1.3 KB
Versions: 5
Compression:
Stored size: 1.3 KB
Contents
class Mailboxer::Message < Mailboxer::Notification attr_accessible :attachment if Mailboxer.protected_attributes? self.table_name = :mailboxer_notifications belongs_to :conversation, :class_name => "Mailboxer::Conversation", :validate => true, :autosave => true validates_presence_of :sender class_attribute :on_deliver_callback protected :on_deliver_callback scope :conversation, lambda { |conversation| where(:conversation_id => conversation.id) } mount_uploader :attachment, AttachmentUploader class << self #Sets the on deliver callback method. def on_deliver(callback_method) self.on_deliver_callback = callback_method end end #Delivers a Message. USE NOT RECOMENDED. #Use Mailboxer::Models::Message.send_message instead. def deliver(reply = false, should_clean = true) self.clean if should_clean #Receiver receipts temp_receipts = recipients.map { |r| build_receipt(r, 'inbox') } #Sender receipt sender_receipt = build_receipt(sender, 'sentbox', true) temp_receipts << sender_receipt if temp_receipts.all?(&:save!) Mailboxer::MailDispatcher.new(self, recipients).call conversation.touch if reply self.recipients = nil on_deliver_callback.call(self) if on_deliver_callback end sender_receipt end end
Version data entries
5 entries across 5 versions & 1 rubygems