Sha256: 7984dd5419b5e1b5a47bf4cf9f06f8021123bb09b7bc6ca1bf6902a46d53bb95
Contents?: true
Size: 1.08 KB
Versions: 2
Compression:
Stored size: 1.08 KB
Contents
# coding: utf-8 module PrivateMessages module Models module PrivateMessage def self.included(base) base.extend ClassMethods end module ClassMethods def is_private_message(options = {}) class_attribute :options self.options = options klass_name = options[:class_name] ||= "User" belongs_to :sender, :class_name => klass_name, :foreign_key => 'sender_id' belongs_to :recipient, :class_name => klass_name, :foreign_key => 'recipient_id' scope :unread, where("read_at is null") def around_user(user) klass_name.constantize.where("sender_id = ? or recipient_id = ?", user.id, user.id) end unless included_modules.include? InstanceMethods include InstanceMethods end end end module InstanceMethods def unread? !self.read? end def read? !self.read_at.blank? end def read! self.update_attribute(:read_at, Time.now) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
private_messages-0.0.11 | lib/private_messages/models/private_message.rb |
private_messages-0.0.1 | lib/private_messages/models/private_message.rb |