discourse/app/serializers/basic_topic_serializer.rb

59 lines
1.2 KiB
Ruby
Raw Normal View History

2013-02-05 14:16:51 -05:00
require_dependency 'age_words'
class BasicTopicSerializer < ApplicationSerializer
include ActionView::Helpers
2013-02-25 11:42:20 -05:00
attributes :id,
:title,
2013-02-19 16:08:23 -05:00
:fancy_title,
2013-02-25 11:42:20 -05:00
:reply_count,
:posts_count,
:highest_post_number,
:image_url,
2013-02-19 16:08:23 -05:00
:created_at,
2013-02-25 11:42:20 -05:00
:last_posted_at,
:age,
:unseen,
:last_read_post_number,
:unread,
2013-02-19 16:08:23 -05:00
:new_posts
2013-02-05 14:16:51 -05:00
def age
AgeWords.age_words(Time.now - (object.created_at || Time.now))
end
def seen
2013-02-07 10:45:24 -05:00
object.user_data.present?
2013-02-05 14:16:51 -05:00
end
def unseen
return false if scope.blank?
2013-02-07 10:45:24 -05:00
return false if scope.user.blank?
2013-02-05 14:16:51 -05:00
return false if object.user_data.present?
return false if object.created_at < scope.user.treat_as_new_topic_start_date
2013-02-05 14:16:51 -05:00
true
end
def last_read_post_number
object.user_data.last_read_post_number
end
alias :include_last_read_post_number? :seen
def unread
unread_helper.unread_posts
end
alias :include_unread? :seen
def new_posts
unread_helper.new_posts
end
alias :include_new_posts? :seen
protected
def unread_helper
@unread_helper ||= Unread.new(object, object.user_data)
end
2013-02-07 10:45:24 -05:00
end