Sha256: cf758148a011c1cc4ee472558a2135fa3505aea19a8c9fd86d83a9e2cb63504f

Contents?: true

Size: 1.02 KB

Versions: 13

Compression:

Stored size: 1.02 KB

Contents

require_relative 'pagination_handler'

module Praxis
  module Extensions
    module Pagination
      class ActiveRecordPaginationHandler < PaginationHandler

        def self.where_lt(query, attr, value)
          # TODO: common for AR/Sequel? Seems we could use Arel and more-specific Sequel things
          query.where(query.table[attr].lt(value))
        end
        
        def self.where_gt(query, attr, value)
          query.where(query.table[attr].gt(value))
        end

        def self.order(query, order)
          return query unless order
          query = query.reorder('')
          
          order.each do |spec_hash|
            direction, name = spec_hash.first
            query = query.order(name => direction)
          end
          query
        end
        
        def self.count(query)
          query.count(:all)
        end

        def self.offset(query, offset)
          query.offset(offset)
        end

        def self.limit(query, limit)
          query.limit(limit)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
praxis-2.0.pre.18 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.17 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.16 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.15 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.14 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.13 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.12 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.11 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.10 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.9 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.8 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.7 lib/praxis/extensions/pagination/active_record_pagination_handler.rb
praxis-2.0.pre.6 lib/praxis/extensions/pagination/active_record_pagination_handler.rb