25 lines
425 B
Ruby
25 lines
425 B
Ruby
# frozen_string_literal: true
|
|
|
|
module PostItemExcerpt
|
|
def self.included(base)
|
|
base.attributes(:excerpt, :truncated)
|
|
end
|
|
|
|
def cooked
|
|
@cooked ||= object.cooked || PrettyText.cook(object.raw)
|
|
end
|
|
|
|
def excerpt
|
|
return nil unless cooked
|
|
@excerpt ||= PrettyText.excerpt(cooked, 300, keep_emoji_images: true)
|
|
end
|
|
|
|
def truncated
|
|
true
|
|
end
|
|
|
|
def include_truncated?
|
|
cooked.length > 300
|
|
end
|
|
end
|