░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/canvas/gems/paginated_collection/lib/paginated_collection
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: proxy.rb
# frozen_string_literal: true # # Copyright (C) 2014 - present Instructure, Inc. # # This file is part of Canvas. # # Canvas is free software: you can redistribute it and/or modify it under # the terms of the GNU Affero General Public License as published by the Free # Software Foundation, version 3 of the License. # # Canvas is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Affero General Public License for more # details. # # You should have received a copy of the GNU Affero General Public License along # with this program. If not, see <http://www.gnu.org/licenses/>. # module PaginatedCollection class Proxy attr_accessor :block def initialize(block) @block = block end def paginate(options = {}) execute_pager(configure_pager(new_pager, options)) end def new_pager PaginatedCollection::Collection.new end def configure_pager(pager, options) raise(ArgumentError, "per_page required") unless options[:per_page] && options[:per_page] > 0 current_page = options.fetch(:page, nil) current_page = pager.first_page if current_page.nil? pager.current_page = current_page pager.per_page = options[:per_page] pager.total_entries = options[:total_entries] pager end def execute_pager(pager) pager = @block.call(pager) unless pager.respond_to?(:current_page) raise(ArgumentError, "The PaginatedCollection block needs to return a WillPaginate-style object") end pager end end end
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 collection.rb
RB
801 B
2023-09-24 03:36
EDIT
📄 proxy.rb
RB
1.6 KB
2023-09-24 03:36
EDIT