Sha256: 515208b06d3e2ea9593f49704bad8b299d9e77a7ba2908dd6b15b5551d4c8a9f

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require 'active_support/configurable'

# taken from https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/config.rb
module Westfield
  class Paginator
    # Configures global settings for pagination
    #   Westfield::Paginator.configure do |config|
    #     config.default_per_page = 10
    #   end
    def self.configure(&block)
      yield @config ||= Westfield::Paginator::Configuration.new
    end

    # Global settings for Westfield::Paginator
    def self.config
      @config
    end

    # need a Class for 3.0
    class Configuration
      include ActiveSupport::Configurable
      config_accessor :default_per_page
      config_accessor :max_per_page

      def param_name
        config.param_name.respond_to?(:call) ? config.param_name.call : config.param_name
      end

      # define param_name writer (copied from AS::Configurable)
      writer, line = 'def param_name=(value); config.param_name = value; end', __LINE__
      singleton_class.class_eval writer, __FILE__, line
      class_eval writer, __FILE__, line
    end

    configure do |config|
      config.default_per_page = 10
      config.max_per_page = 100
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
westfield_paginator-1.0.7 lib/westfield_paginator/config.rb
westfield_paginator-1.0.6 lib/westfield_paginator/config.rb