lib/prawn/document/span.rb in prawn-2.1.0 vs lib/prawn/document/span.rb in prawn-2.2.0

- old
+ new

@@ -1,7 +1,5 @@ -# encoding: utf-8 - # span.rb : Implements text columns # # Copyright September 2008, Gregory Brown. All Rights Reserved. # # This is free software. Please see the LICENSE and COPYING files for details. @@ -26,29 +24,34 @@ # text "Here's some centered text in a 350 point column. " * 100 # end # def span(width, options = {}) Prawn.verify_options [:position], options - original_position = self.y + original_position = y # FIXME: Any way to move this upstream? - left_boundary = case(options[:position] || :left) - when :left - margin_box.absolute_left - when :center - 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 - fail ArgumentError, "Invalid option for :position" - end + 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 + when :right + margin_box.absolute_right - width + when Numeric + margin_box.absolute_left + options[:position] + else + raise ArgumentError, 'Invalid option for :position' + end # we need to bust out of whatever nested bounding boxes we're in. canvas do - bounding_box([left_boundary, - margin_box.absolute_top], :width => width) do + bounding_box( + [ + left_boundary, + margin_box.absolute_top + ], width: width + ) do self.y = original_position yield end end end