Sha256: 15be90bb8e658f073de7994b0522bae5fdd5490b25798458118404ad31333ba7

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

module SolidErrors
  class ApplicationController < ActionController::Base
    protect_from_forgery with: :exception

    http_basic_authenticate_with name: SolidErrors.username, password: SolidErrors.password if SolidErrors.password

    # adapted from: https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy.rb
    OverflowError = Class.new(StandardError)
    class Page
      attr_reader :count, :items, :pages, :first, :last, :prev, :next, :offset, :from, :to

      def initialize(collection, params)
        @count = collection.count
        @items = (params[:items] || 20).to_i
        @pages = [(@count.to_f / @items).ceil, 1].max
        @page = ((page = (params[:page] || 1).to_i) > @pages) ? @pages : page
        @first = (1 unless @page == 1)
        @last = (@pages unless @page == @pages)
        @prev = (@page - 1 unless @page == 1)
        @next = (@page == @pages) ? nil : @page + 1
        @offset = (@items * (@page - 1))
        @from = [@offset + 1, @count].min
        @to = [@offset + @items, @count].min
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
solid_errors-0.6.1 app/controllers/solid_errors/application_controller.rb
solid_errors-0.6.0 app/controllers/solid_errors/application_controller.rb
solid_errors-0.5.0 app/controllers/solid_errors/application_controller.rb
solid_errors-0.4.3 app/controllers/solid_errors/application_controller.rb
solid_errors-0.4.2 app/controllers/solid_errors/application_controller.rb
solid_errors-0.4.1 app/controllers/solid_errors/application_controller.rb
solid_errors-0.4.0 app/controllers/solid_errors/application_controller.rb