class PaginatedSerializer::Serializer
Attributes
collection[RW]
Public Class Methods
new(collection)
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 8 def initialize(collection) @collection = collection end
Public Instance Methods
to_json()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 12 def to_json { per_page: per_page, total: total, total_pages: total_pages, last_page: last_page, current_page: current_page, first_page: first_page, next_page: next_page, previous_page: previous_page }.merge(collection_json) end
Private Instance Methods
collection_json()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 63 def collection_json klass = collection.first.class.name key = klass.pluralize.underscore.to_sym serializer = "#{klass}Serializer".constantize { key => ActiveModel::ArraySerializer.new(collection, each_serializer: serializer).as_json } end
current_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 43 def current_page collection.current_page end
first_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 47 def first_page 1 end
last_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 39 def last_page collection.total_pages end
next_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 51 def next_page if total_pages > current_page collection.current_page + 1 end end
per_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 27 def per_page Kaminari.config.default_per_page end
previous_page()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 57 def previous_page if current_page > 1 collection.current_page - 1 end end
total()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 31 def total collection.total_count end
total_pages()
click to toggle source
# File lib/paginated_serializer/serializer.rb, line 35 def total_pages collection.total_pages end