Class: Prawn::Repeater

Inherits:
Object
  • Object
show all
Defined in:
lib/prawn/repeater.rb

Overview

:nodoc:

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(document, page_filter, &block) ⇒ Repeater

Returns a new instance of Repeater.



85
86
87
88
89
90
91
92
93
# File 'lib/prawn/repeater.rb', line 85

def initialize(document, page_filter, &block)
  @document    = document
  @page_filter = page_filter
  @stamp_name  = "prawn_repeater(#{Repeater.count})"

  @document.create_stamp(@stamp_name, &block)

  Repeater.count += 1
end

Class Attribute Details

.countObject



78
79
80
# File 'lib/prawn/repeater.rb', line 78

def count
  @count ||= 0
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



83
84
85
# File 'lib/prawn/repeater.rb', line 83

def name
  @name
end

Instance Method Details

#match?(page_number) ⇒ Boolean

Returns:

  • (Boolean)


95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/prawn/repeater.rb', line 95

def match?(page_number)
  case @page_filter
  when :all
    true
  when :odd
    page_number % 2 == 1
  when :even
    page_number % 2 == 0
  when Range, Array
    @page_filter.include?(page_number)
  when Proc
    @page_filter.call(page_number)
  end
end

#run(page_number) ⇒ Object



110
111
112
# File 'lib/prawn/repeater.rb', line 110

def run(page_number)
  @document.stamp(@stamp_name) if match?(page_number)
end