LinkRendererBase
This class does the heavy lifting of actually building the pagination links. It is used by will_paginate helper internally.
Returns the subset of options this instance was initialized with that represent HTML attributes for the container element of pagination links.
# File lib/will_paginate/view_helpers/link_renderer.rb, line 37 def container_attributes @container_attributes ||= @options.except(*(ViewHelpers.pagination_options.keys + [:renderer] - [:class])) end
collection is a WillPaginate::Collection instance or any other object that conforms to that API
options are forwarded from will_paginate view helper
template is the reference to the template being rendered
# File lib/will_paginate/view_helpers/link_renderer.rb, line 16 def prepare(collection, options, template) super(collection, options) @template = template @container_attributes = @base_url_params = nil end
Process it! This method returns the complete HTML string which contains pagination links. Feel free to subclass LinkRenderer and change this method as you see fit.
# File lib/will_paginate/view_helpers/link_renderer.rb, line 25 def to_html html = pagination.map do |item| item.is_a?(Fixnum) ? page_number(item) : send(item) end.join(@options[:link_separator]) @options[:container] ? html_container(html) : html end
# File lib/will_paginate/view_helpers/link_renderer.rb, line 51 def gap text = @template.will_paginate_translate(:page_gap) { '…' } %(<span class="gap">#{text}</span>) end
# File lib/will_paginate/view_helpers/link_renderer.rb, line 74 def html_container(html) tag(:div, html, container_attributes) end
# File lib/will_paginate/view_helpers/link_renderer.rb, line 61 def next_page num = @collection.current_page < @collection.total_pages && @collection.current_page + 1 previous_or_next_page(num, @options[:next_label], 'next_page') end
# File lib/will_paginate/view_helpers/link_renderer.rb, line 43 def page_number(page) unless page == current_page link(page, page, :rel => rel_value(page)) else tag(:em, page, :class => 'current') end end
# File lib/will_paginate/view_helpers/link_renderer.rb, line 66 def previous_or_next_page(page, text, classname) if page link(text, page, :class => classname) else tag(:span, text, :class => classname + ' disabled') end end
Generated with the Darkfish Rdoc Generator 2.