class Middleman::Paginate::Extension

Constants

CollectionProxyDescriptor

Public Instance Methods

paginate(collection, base_path, template, per_page: 20, suffix: "/page/:num/index", locals: {}, data: {}, locale: nil) click to toggle source
# File lib/middleman/paginate/extension.rb, line 51
def paginate(collection, base_path, template, per_page: 20, suffix: "/page/:num/index", locals: {}, data: {}, locale: nil)
  pages = collection.each_slice(per_page).to_a
  descriptors = []

  pages.each_with_index do |page_collection, i|
    pager = Pager.new(base_path, suffix, i + 1, pages.size, per_page)

    opts = {
      locals: locals.merge(items: page_collection, pager: pager),
      data: data,
      locale: locale
    }

    descriptors << Middleman::Sitemap::Extensions::ProxyDescriptor.new(
      Middleman::Util.normalize_path(pager.full_page_path),
      Middleman::Util.normalize_path(template),
      opts.dup
    )
  end

  CollectionProxyDescriptor.new(descriptors)
end