module Caracal::Core::PageNumbers
This module encapsulates all the functionality related to setting the document's page number behavior.
Public Class Methods
included(base)
click to toggle source
# File lib/caracal/core/page_numbers.rb, line 12 def self.included(base) base.class_eval do #------------------------------------------------------------- # Configuration #------------------------------------------------------------- # constants const_set(:DEFAULT_PAGE_NUMBER_ALIGN, :center) # accessors attr_reader :page_number_align attr_reader :page_number_label attr_reader :page_number_label_size attr_reader :page_number_number_size attr_reader :page_number_show #------------------------------------------------------------- # Public Methods #------------------------------------------------------------- # This method controls whether and how page numbers are displayed # on the document. # def page_numbers(*args, &block) options = Caracal::Utilities.extract_options!(args) options.merge!({ show: !!args.first }) unless args.first.nil? # careful: just `args.first` is falsey model = Caracal::Core::Models::PageNumberModel.new(options, &block) if model.valid? @page_number_align = model.page_number_align @page_number_label = model.page_number_label @page_number_label_size = model.page_number_label_size @page_number_number_size = model.page_number_number_size @page_number_show = model.page_number_show else raise Caracal::Errors::InvalidModelError, 'page_numbers :align parameter must be :left, :center, or :right' end end end end
Public Instance Methods
page_numbers(*args, &block)
click to toggle source
This method controls whether and how page numbers are displayed on the document.
# File lib/caracal/core/page_numbers.rb, line 37 def page_numbers(*args, &block) options = Caracal::Utilities.extract_options!(args) options.merge!({ show: !!args.first }) unless args.first.nil? # careful: just `args.first` is falsey model = Caracal::Core::Models::PageNumberModel.new(options, &block) if model.valid? @page_number_align = model.page_number_align @page_number_label = model.page_number_label @page_number_label_size = model.page_number_label_size @page_number_number_size = model.page_number_number_size @page_number_show = model.page_number_show else raise Caracal::Errors::InvalidModelError, 'page_numbers :align parameter must be :left, :center, or :right' end end