Class: Prawn::Document::LazyBoundingBox

Inherits:
BoundingBox
  • Object
show all
Defined in:
lib/prawn/layout/page.rb

Instance Method Summary collapse

Instance Method Details

#action(&block) ⇒ Object

Defines the block to be executed by LazyBoundingBox#draw. Usually, this will be used via a higher level interface.

See the documentation for Document#lazy_bounding_box, Document#header, and Document#footer



97
98
99
# File 'lib/prawn/layout/page.rb', line 97

def action(&block)
  @action = block
end

#drawObject

Sets Document#bounds to use the LazyBoundingBox for its bounds, runs the block specified by LazyBoundingBox#action, and then restores the original bounds of the document.



105
106
107
108
109
110
111
112
113
# File 'lib/prawn/layout/page.rb', line 105

def draw
  @parent.mask(:y) do  
    parent_box = @parent.bounds  
    @parent.bounds = self    
    @parent.y = absolute_top
    @action.call   
    @parent.bounds = parent_box
  end
end