class DatePaginate::Helpers::Paginator

Constants

PARAM_KEY_BLACKLIST

Public Class Methods

new(template, options) click to toggle source
# File lib/date_paginate/helpers/paginator.rb, line 16
def initialize(template, options)
  options[:num_pages] ||= DatePaginate.config.default_num_pages

  unless options[:date_paginate_type].in? self.class.paginate_type_list
    options[:date_paginate_type] = DatePaginate.config.default_paginate_type
  end

  @template, @options = template, options

  @date_paginate_type = @options.delete(:date_paginate_type)
  @num_pages = @options.delete(:num_pages)
  @options["recent_#{@date_paginate_type}".to_sym] = send("recent_#{@date_paginate_type}")
  @params = template.params.except(*PARAM_KEY_BLACKLIST).merge(@options.delete(:params) || {})
end
paginate_type_list() click to toggle source
# File lib/date_paginate/helpers/paginator.rb, line 12
def self.paginate_type_list
  [:days, :weeks, :months]
end

Public Instance Methods

partial_path() click to toggle source
# File lib/date_paginate/helpers/paginator.rb, line 45
def partial_path
  [
   "date_paginate",
   "paginate_#{@date_paginate_type}",
  ].compact.join("/")
end
to_s(locals = {}) click to toggle source
# File lib/date_paginate/helpers/paginator.rb, line 58
def to_s(locals = {})
  locals = @options.merge(params: @params).merge(locals)
  @template.render :partial => partial_path, :locals => locals, :formats => [:html]
end

Private Instance Methods

method_missing(name, *args, &block) click to toggle source

delegates view helper methods to @template

Calls superclass method
# File lib/date_paginate/helpers/paginator.rb, line 53
def method_missing(name, *args, &block)
  @template.respond_to?(name) ? @template.send(name, *args, &block) : super
end