| Class | Post |
| In: |
app/models/post.rb
|
| Parent: | ActiveRecord::Base |
Mailing list post
| from_email_address | [RW] | |
| from_name | [RW] |
# 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
# 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
# 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
# File app/models/post.rb, line 59
59: def from_email_address=(value)
60: @from_email_address = value
61: update_sender
62: end
# 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
# File app/models/post.rb, line 68
68: def from_name=(value)
69: @from_name = value
70: update_sender
71: end
# 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
Replace a couple letters from email addresses to avoid spammers
# 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
# 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