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