fixed post listing
This commit is contained in:
43
app/logical/post_sets/post.rb
Normal file
43
app/logical/post_sets/post.rb
Normal file
@@ -0,0 +1,43 @@
|
||||
module PostSets
|
||||
class Post
|
||||
attr_reader :tags, :page, :posts
|
||||
|
||||
def initialize(params)
|
||||
@tags = Tag.scan_query(params[:tags])
|
||||
@page = [params[:page].to_i, 1].max
|
||||
@posts = ::Post.tag_match(tag_string).paginate(page)
|
||||
end
|
||||
|
||||
def tag_string
|
||||
@tag_string ||= tags.join(" ")
|
||||
end
|
||||
|
||||
def has_wiki?
|
||||
if tags.any?
|
||||
::WikiPage.titled(tag_string).exists?
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def wiki_page
|
||||
if tags.any?
|
||||
::WikiPage.titled(tag_string).first
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def is_single_tag?
|
||||
tags.size == 1
|
||||
end
|
||||
|
||||
def tag
|
||||
tag_string
|
||||
end
|
||||
|
||||
def presenter
|
||||
@presenter ||= PostSetPresenter.new(self)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user