Sha256: 6c17e1965640b5ce5994c75377173c7f57277527a69433db01e8445022f1bea4
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
# # This is, in fact, the main parlement class! # class Elt < ActiveRecord::Base usesguid acts_as_tree :order => "position is not null, position, created_on" has_one :mail, :dependent => true has_many :attachments, :dependent => true belongs_to :person has_and_belongs_to_many :subscribers, :class_name => "Person", :join_table => "subscribers" # for live_tree def name subject end # Just a quick method to get all subscribers as a simple list def all_recipients result = Array.new eltRecipient = self while eltRecipient result.concat eltRecipient.subscribers eltRecipient = eltRecipient.parent end logger.debug "all_recipients result: #{result.to_s}" return result end # # Receive this new elt as an email, sent through app/helpers/mailman.rb # def receive(mail) logger.info "Receive \"#{mail.subject}\"" # TODO # Loop detection, will need more work mail1 = Mail.find_by_message(mail.message_id) # The to_s seems necessary mail2 = Mail.find_by_message(mail['X-Message-Id'].to_s) if mail['X-Message-Id'] if not mail1 and not mail2 self.mail = Mail.new if not self.mail self.mail.elt = self self.mail.receive(mail) self.id = mail['X-Leparlement-Elt-Id'].to_s if mail['X-Leparlement-Elt-Id'] save else logger.info "Already received (id: #{mail.message_id})...\n" end end # # Save and publish this elt # def save super publish logger.info "\n" end private # # Mail the elt to all subscribers # def publish logger.info "Publish #{subject}" self.mail ||= Mail.new self.mail.elt = self self.mail.publish self.mail.save end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
parlement-0.4 | app/models/elt.rb |