lib/prawn/document/span.rb in prawn-2.4.0 vs lib/prawn/document/span.rb in prawn-2.5.0

- old
+ new

@@ -5,40 +5,42 @@ # Copyright September 2008, Gregory Brown. All Rights Reserved. # # This is free software. Please see the LICENSE and COPYING files for details. module Prawn - class Document + class Document # rubocop: disable Style/Documentation # @group Stable API - # A span is a special purpose bounding box that allows a column of - # elements to be positioned relative to the margin_box. + # A span is a special purpose bounding box that allows a column of elements + # to be positioned relative to the margin_box. # - # Arguments: - # +width+:: The width of the column in PDF points + # This method is typically used for flowing a column of text from one page + # to the next. # - # Options: - # <tt>:position</tt>:: One of :left, :center, :right or an x offset + # @example + # span(350, position: :center) do + # text "Here's some centered text in a 350 point column. " * 100 + # end # - # This method is typically used for flowing a column of text from one - # page to the next. - # - # span(350, :position => :center) do - # text "Here's some centered text in a 350 point column. " * 100 - # end - # + # @param width [Number] The width of the column in PDF points + # @param options [Hash{Symbol => any }] + # @option options :position [:left, :center, :right, Number] + # position of the span relative to the page margins. + # @yield + # @return [void] + # @raise [ArgumentError] For unsupported `:position` value. def span(width, options = {}) - Prawn.verify_options [:position], options + Prawn.verify_options([:position], options) original_position = y # FIXME: Any way to move this upstream? left_boundary = case options.fetch(:position, :left) when :left margin_box.absolute_left when :center - margin_box.absolute_left + margin_box.width / 2.0 - width / 2.0 + margin_box.absolute_left + (margin_box.width / 2.0) - (width / 2.0) when :right margin_box.absolute_right - width when Numeric margin_box.absolute_left + options[:position] else @@ -48,12 +50,12 @@ # we need to bust out of whatever nested bounding boxes we're in. canvas do bounding_box( [ left_boundary, - margin_box.absolute_top + margin_box.absolute_top, ], - width: width + width: width, ) do self.y = original_position yield end end