module PaginationHelper
def smart_paginator(set, &block)
if params[:page] && set.page > 1000
set.extend(PostSets::Sequential)
sequential_paginator(set)
else
set.extend(PostSets::Numbered)
numbered_paginator(set, &block)
end
end
def sequential_paginator(set)
html = "
"
html.html_safe
end
def numbered_paginator(set, &block)
html = ""
html.html_safe
end
def numbered_paginator_final_item(total_pages, current_page, &block)
if total_pages <= 1000
numbered_paginator_item(total_pages, current_page, &block)
else
""
end
end
def numbered_paginator_item(page, current_page, &block)
html = ""
if page == "..."
html << "..."
elsif page == current_page
html << page.to_s
else
html << capture(page, &block)
end
html << ""
html.html_safe
end
end