module Facet::Core

Public Class Methods

new(current_page: nil, filter_by: nil, sort_by: nil, all: false, paginate: true, source: nil) click to toggle source
# File lib/facet/concerns/core.rb, line 12
def initialize(current_page: nil, filter_by: nil, sort_by: nil, all: false, paginate: true, source: nil)
  @current_page = page_for(current_page, paginate)
  @filter_by = filter_for(filter_by, all)
  @sort_by = sort_for(sort_by)
  @source = source
end

Public Instance Methods

filtered?() click to toggle source
# File lib/facet/concerns/core.rb, line 23
def filtered?
  filter_by.present?
end
paginated?() click to toggle source
# File lib/facet/concerns/core.rb, line 19
def paginated?
  current_page.present?
end
sorted?() click to toggle source
# File lib/facet/concerns/core.rb, line 27
def sorted?
  sort_by.present?
end
source?() click to toggle source
# File lib/facet/concerns/core.rb, line 31
def source?
  source.present?
end

Private Instance Methods

filter_for(filter_by, all) click to toggle source
# File lib/facet/concerns/core.rb, line 43
def filter_for(filter_by, all)
  filter_by.presence || ((default_filter? && !all) ? default_filter : nil)
end
page_for(current_page, paginate) click to toggle source
# File lib/facet/concerns/core.rb, line 37
def page_for(current_page, paginate)
  return current_page.presence || default_page if paginate && pagination?

  raise ArgumentError, "pagination is disabled for this facet." if current_page.present?
end
sort_for(sort_by) click to toggle source
# File lib/facet/concerns/core.rb, line 47
def sort_for(sort_by)
  sort_by.presence || (default_sort? ? default_sort : nil)
end