Sha256: f513353ecf7009058ad1f1481315148eafc2092d24dc4c64f55f278b752b7e2e
Contents?: true
Size: 1006 Bytes
Versions: 6
Compression:
Stored size: 1006 Bytes
Contents
class Prawn::SVG::Elements::Rect < Prawn::SVG::Elements::Base def parse require_attributes 'width', 'height' @x = x(attributes['x'] || '0') @y = y(attributes['y'] || '0') @width = x_pixels(attributes['width']) @height = y_pixels(attributes['height']) require_positive_value @width, @height @radius = x_pixels(attributes['rx']) || y_pixels(attributes['ry']) if @radius # If you implement separate rx and ry in the future, you'll want to change this # so that rx is constrained to @width/2 and ry is constrained to @height/2. max_value = [@width, @height].min / 2.0 @radius = @radius.clamp(0, max_value) end end def apply if @radius # n.b. does not support both rx and ry being specified with different values add_call 'rounded_rectangle', [@x, @y], @width, @height, @radius else add_call 'rectangle', [@x, @y], @width, @height end end def bounding_box [@x, @y, @x + @width, @y - @height] end end
Version data entries
6 entries across 6 versions & 1 rubygems