module PostSetPresenters
  class Pool < Base
    attr_reader :tag_set_presenter, :post_set
    delegate :posts, :to => :post_set

    def initialize(post_set)
      @post_set = post_set
      @tag_set_presenter = TagSetPresenter.new(
        RelatedTagCalculator.calculate_from_sample_to_array(
          post_set.tag_string
        ).map {|x| x[0]}
      )
    end

    def tag_list_html(template)
      tag_set_presenter.tag_list_html(template)
    end

    def post_previews_html(template)
      html = ""

      if posts.empty?
        return template.render("post_sets/blank")
      end

      posts.each do |post|
        html << PostPresenter.preview(post, :pool_id => post_set.pool.id)
      end

      html.html_safe
    end
  end
end
