Class: Receipt

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/receipt.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.mark_as_deleted(options = {}) ⇒ Object

Marks the receipt as deleted



58
59
60
# File 'app/models/receipt.rb', line 58

def mark_as_deleted(options={})
  update_receipts({:deleted => true}, options)
end

.mark_as_not_deleted(options = {}) ⇒ Object

Marks the receipt as not deleted



63
64
65
# File 'app/models/receipt.rb', line 63

def mark_as_not_deleted(options={})
  update_receipts({:deleted => false}, options)
end

.mark_as_read(options = {}) ⇒ Object

Marks all the receipts from the relation as read



38
39
40
# File 'app/models/receipt.rb', line 38

def mark_as_read(options={})
  update_receipts({:is_read => true}, options)
end

.mark_as_unread(options = {}) ⇒ Object

Marks all the receipts from the relation as unread



43
44
45
# File 'app/models/receipt.rb', line 43

def mark_as_unread(options={})
  update_receipts({:is_read => false}, options)
end

.move_to_inbox(options = {}) ⇒ Object

Moves all the receipts from the relation to inbox



68
69
70
# File 'app/models/receipt.rb', line 68

def move_to_inbox(options={})
  update_receipts({:mailbox_type => :inbox, :trashed => false}, options)
end

.move_to_sentbox(options = {}) ⇒ Object

Moves all the receipts from the relation to sentbox



73
74
75
# File 'app/models/receipt.rb', line 73

def move_to_sentbox(options={})
  update_receipts({:mailbox_type => :sentbox, :trashed => false}, options)
end

.move_to_trash(options = {}) ⇒ Object

Marks all the receipts from the relation as trashed



48
49
50
# File 'app/models/receipt.rb', line 48

def move_to_trash(options={})
  update_receipts({:trashed => true}, options)
end

.untrash(options = {}) ⇒ Object

Marks all the receipts from the relation as not trashed



53
54
55
# File 'app/models/receipt.rb', line 53

def untrash(options={})
  update_receipts({:trashed => false}, options)
end

.update_receipts(updates, options = {}) ⇒ Object

This methods helps to do a update_all with table joins, not currently supported by rails. Acording to the github ticket github.com/rails/rails/issues/522 it should be supported with 3.2.



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'app/models/receipt.rb', line 80

def update_receipts(updates,options={})
  ids = Array.new
  where(options).each do |rcp|
    ids << rcp.id
  end
  unless ids.empty?
    conditions = [""].concat(ids)
    condition = "id = ? "
    ids.drop(1).each do
      condition << "OR id = ? "
    end
    conditions[0] = condition
    Receipt.except(:where).except(:joins).where(conditions).update_all(updates)
  end
end

Instance Method Details

#conversationObject

Returns the conversation associated to the receipt if the notification is a Message



139
140
141
# File 'app/models/receipt.rb', line 139

def conversation
  message.conversation #if message.is_a? Message
end

#is_trashed?Boolean

Returns if the participant have trashed the message

Returns:

  • (Boolean)


149
150
151
# File 'app/models/receipt.rb', line 149

def is_trashed?
  self.trashed
end

#is_unread?Boolean

Returns if the participant have read the message

Returns:

  • (Boolean)


144
145
146
# File 'app/models/receipt.rb', line 144

def is_unread?
  !self.is_read
end

#mark_as_deletedObject

Marks the receipt as deleted



99
100
101
# File 'app/models/receipt.rb', line 99

def mark_as_deleted
  update_attributes(:deleted => true)
end

#mark_as_not_deletedObject

Marks the receipt as not deleted



104
105
106
# File 'app/models/receipt.rb', line 104

def mark_as_not_deleted
  update_attributes(:deleted => false)
end

#mark_as_readObject

Marks the receipt as read



109
110
111
# File 'app/models/receipt.rb', line 109

def mark_as_read
  update_attributes(:is_read => true)
end

#mark_as_unreadObject

Marks the receipt as unread



114
115
116
# File 'app/models/receipt.rb', line 114

def mark_as_unread
  update_attributes(:is_read => false)
end

#move_to_inboxObject

Moves the receipt to inbox



129
130
131
# File 'app/models/receipt.rb', line 129

def move_to_inbox
  update_attributes(:mailbox_type => :inbox, :trashed => false)
end

#move_to_sentboxObject

Moves the receipt to sentbox



134
135
136
# File 'app/models/receipt.rb', line 134

def move_to_sentbox
  update_attributes(:mailbox_type => :sentbox, :trashed => false)
end

#move_to_trashObject

Marks the receipt as trashed



119
120
121
# File 'app/models/receipt.rb', line 119

def move_to_trash
  update_attributes(:trashed => true)
end

#untrashObject

Marks the receipt as not trashed



124
125
126
# File 'app/models/receipt.rb', line 124

def untrash
  update_attributes(:trashed => false)
end