Class Post
In: app/models/post.rb
Parent: ActiveRecord::Base

Mailing list post

Methods

Attributes

from_email_address  [RW] 
from_name  [RW] 

Public Class methods

[Source]

    # File app/models/post.rb, line 11
11:   def Post.find_for_dates(mailing_list, month_start, month_end)
12:     logger.debug("Post.find_for_dates(#{mailing_list}, #{month_start}, #{month_end})")
13:     mailing_list.posts.find(
14:       :all,
15:       :select => "id, date, sender, subject, topica_message_id" ,
16:       :conditions => [ "date between ? and ?", month_start, month_end ],
17:       :order => "date desc"
18:     )
19:   end

[Source]

    # File app/models/post.rb, line 21
21:   def initialize(attributes = nil)
22:     super
23:     self.date = Time.zone.now if date.nil?
24:   end

Public Instance methods

[Source]

    # File app/models/post.rb, line 38
38:   def from_email_address
39:     @from_email_address ||= (
40:     if sender
41:       if sender["<"]
42:         sender[/<(.*)>/, 1].try(:strip)
43:       elsif !sender["<"]
44:         sender
45:       end
46:     end
47:     )
48:   end

[Source]

    # File app/models/post.rb, line 59
59:   def from_email_address=(value)
60:     @from_email_address = value
61:     update_sender
62:   end

[Source]

    # File app/models/post.rb, line 26
26:   def from_name
27:     @from_name ||= (
28:     if sender
29:       if sender["<"]
30:         sender[/^([^<]+)/].try(:strip)
31:       elsif !sender["@"]
32:         sender
33:       end
34:     end
35:     )
36:   end

[Source]

    # File app/models/post.rb, line 68
68:   def from_name=(value)
69:     @from_name = value
70:     update_sender
71:   end

[Source]

    # File app/models/post.rb, line 54
54:   def remove_list_prefix
55:     subject.gsub!(/\[#{mailing_list.subject_line_prefix}\]\s*/, "")
56:     subject.strip!
57:   end

[Source]

    # File app/models/post.rb, line 50
50:   def sender=(value)
51:     self[:sender] = value
52:   end

Replace a couple letters from email addresses to avoid spammers

[Source]

    # File app/models/post.rb, line 74
74:   def sender_obscured
75:     if sender.blank? or !topica_message_id.blank?
76:       return sender
77:     end
78:     
79:     sender_parts = sender.split("@")
80:     if sender_parts.size > 1
81:       person_name = sender_parts.first
82:       if person_name.length > 2
83:         return person_name[0..(person_name.length - 3)] + "..@" + sender_parts.last
84:       else
85:         return "..@" + sender_parts.last
86:       end
87:     end
88:     
89:     sender
90:   end

[Source]

    # File app/models/post.rb, line 64
64:   def topica?
65:     topica_message_id.present?
66:   end

[Source]

    # File app/models/post.rb, line 92
92:   def update_sender
93:     if @from_name.present? && from_email_address.present? && @from_email_address.present? && !(@from_name.to_s == @from_email_address.to_s )
94:       self.sender = "#{@from_name} <#{@from_email_address}>"
95:     else
96:       self.sender = @from_email_address.to_s
97:     end
98:   end

[Validate]