class Golden::QueryResultPresenter

Attributes

presenter_class[RW]
records[RW]

Public Class Methods

collect(result, presenter_class) click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 6
def collect(result, presenter_class)
  new(
    records: paginated_array(result),
    presenter_class: presenter_class.to_s
  )
end
paginated_array(result) click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 13
def paginated_array(result)
  return result unless result.is_a?(Array)
  return result unless ::Object.const_defined? 'Kaminari'
  return Kaminari.paginate_array([], total_count: 0).page(1) if result.empty?

  Kaminari.paginate_array(result).page(1).per(result.size)
end

Public Instance Methods

current_page() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 42
def current_page
  records.current_page
end
each(&block) click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 26
def each(&block)
  presenters.each(&block)
end
first_page?() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 58
def first_page?
  records.first_page?
end
last_page?() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 62
def last_page?
  records.last_page?
end
next_page() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 50
def next_page
  records.next_page
end
out_of_range?() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 66
def out_of_range?
  records.out_of_range?
end
per_page() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 46
def per_page
  records.limit_value
end
presenters() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 30
def presenters
  @presenters ||= records.map { |record| presenter_class.constantize.new record }
end
prev_page() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 54
def prev_page
  records.prev_page
end
total_count() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 34
def total_count
  records.total_count
end
total_pages() click to toggle source
# File lib/golden/objects/query/query_result_presenter.rb, line 38
def total_pages
  records.total_pages
end