Skip to content

Instantly share code, notes, and snippets.

@bishopandco
Created September 6, 2012 03:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bishopandco/3650370 to your computer and use it in GitHub Desktop.
Save bishopandco/3650370 to your computer and use it in GitHub Desktop.
Message Theming
class MessageTheme
def self.message_theming(week,year)
TwitterWeeklySampleMessage.primary_key="id"
BlogWeeklySampleMessage.primary_key="id"
FacebookWeeklySampleMessage.primary_key="id"
weekly_samples = WeeklySample.includes({:property => :tags}, :facebook_weekly_sample_messages, :blog_weekly_sample_messages, :twitter_weekly_sample_messages).where(:week_number => week,:year => year)
weekly_samples.each do |weekly_sample|
case weekly_sample.source_id
when 1
weekly_sample.twitter_weekly_sample_messages.each do |msg|
if weekly_sample.property.nil?
break
else
msg.theme_list = weekly_sample.property.tags.collect{|tag| tag.name.match(/"(\w|\s|[':_<>\-\+\=])+"/) ? (msg.message.fetch("body").match(%r((#{tag.name.gsub('"','')}))i) ? tag.name.titleize : nil) : (msg.message.fetch("body").match(%r((#{tag.name.gsub(' ','|')}))i) ? tag.name.titleize : nil)}.compact
msg.save unless msg.theme_list.empty?
end
end
when 2
weekly_sample.facebook_weekly_sample_messages.each do |msg|
if weekly_sample.property.nil?
break
else
msg.theme_list = weekly_sample.property.tags.collect{|tag| tag.name.match(/"(\w|\s|[':_<>\-\+\=])+"/) ? (msg.message.match(%r((#{tag.name.gsub('"','')}))i) ? tag.name.titleize : nil) : (msg.message.match(%r((#{tag.name.gsub(' ','|')}))i) ? tag.name.titleize : nil)}.compact
msg.save unless msg.theme_list.empty?
end
end
when 3
weekly_sample.blog_weekly_sample_messages.each do |msg|
if weekly_sample.property.nil?
break
else
msg.theme_list = weekly_sample.property.tags.collect{|tag| tag.name.match(/"(\w|\s|[':_<>\-\+\=])+"/) ? (msg.post_content.fetch("body").match(%r((#{tag.name.gsub('"','')}))i) ? tag.name.titleize : nil) : (msg.post_content.fetch("body").match(%r((#{tag.name.gsub(' ','|')}))i) ? tag.name.titleize : nil)}.compact
msg.save unless msg.theme_list.empty?
end
end
else
break
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment