class RailsPaginate::Pagers::Slider

slider method

Public Instance Methods

inner() click to toggle source

get option of inner

# File lib/rails_paginate/pagers/slider.rb, line 58
def inner
  options[:inner] || self.class.inner
end
inner_range() click to toggle source

build dummy inner range

# File lib/rails_paginate/pagers/slider.rb, line 36
def inner_range
  @inner_range ||= (current_page - inner)..(current_page + inner)
end
outer() click to toggle source

get option of out

# File lib/rails_paginate/pagers/slider.rb, line 63
def outer
  options[:outer] || self.class.outer
end
visible?(page) click to toggle source

looks should this page visible

# File lib/rails_paginate/pagers/slider.rb, line 41
def visible?(page)
  # outer
  if outer > 0
    return true if outer >= page
    return true if (pages - outer) < page
  end

  # current page
  return true if current_page == page

  # inner
  return true if inner_range.include? page

  false
end
visible_pages() click to toggle source

build array with all visible pages

# File lib/rails_paginate/pagers/slider.rb, line 14
def visible_pages
  visible = []
  last_inserted = 0
  splited = false
  (1..pages).each do |page|
    # insert
    if visible? page
      visible << page
      last_inserted = page
      splited = false
    else
      # need splitter
      if not splited and outer > 0 and last_inserted < page
        visible << nil
        splited = true
      end
    end
  end
  visible
end