Sha256: 1cff68d8fd4b7b00b5e7292537a685095f2bfb0890d87175a2d6d1f2f4c32386

Contents?: true

Size: 845 Bytes

Versions: 1

Compression:

Stored size: 845 Bytes

Contents

module MList
  class Thread < ActiveRecord::Base
    set_table_name 'mlist_threads'
    
    belongs_to :mail_list, :class_name => 'MList::MailList', :counter_cache => :threads_count
    has_many :messages, :class_name => 'MList::Message', :dependent => :delete_all
    
    def children(message)
      messages.select {|m| m.parent == message}
    end
    
    def first?(message)
      messages.first == message
    end
    
    def last?(message)
      messages.last == message
    end
    
    def next(message)
      i = messages.index(message)
      messages[i + 1] unless messages.size < i
    end
    
    def previous(message)
      i = messages.index(message)
      messages[i - 1] if i > 0
    end
    
    def roots
      messages.select {|m| m.parent.nil?}
    end
    
    def subject
      messages.first.subject
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aiwilliams-mlist-0.1.4 lib/mlist/thread.rb