Sha256: 006d6c12de485e9e678b54d38a533e6449658f4abf4b10b655850825deabea7b

Contents?: true

Size: 755 Bytes

Versions: 14

Compression:

Stored size: 755 Bytes

Contents

require 'routing_filter/base'

module RoutingFilter
  class Pagination < Base
    def around_recognize(path, env, &block)
      page = extract_page!(path)
      returning yield(path, env) do |params|
        params[:page] = page.to_i if page
      end
    end

    def around_generate(*args, &block)
      page = args.extract_options!.delete(:page)
      returning yield do |result|
        if page && page != 1
          url = result.is_a?(Array) ? result.first : result
          append_page!(url, page)
        end
      end
    end

    protected

      def extract_page!(path)
        path.sub! %r(/pages/([\d]+)/?$), ''
        $1
      end

      def append_page!(url, page)
        url.sub!(/($|\?)/) { "/pages/#{page}#{$1}" }
      end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
refinerycms-0.9.7.14 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.13 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.11 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.10 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.9 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.8 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.7 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.6 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.5 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.4 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.3 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.2 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7.1 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb
refinerycms-0.9.7 vendor/plugins/i18n/lib/routing_filter/routing_filter/pagination.rb