module Magick::RVG::Stretchable
The methods in this module describe the user-coordinate space. RVG and Pattern objects are stretchable.
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/rvg/stretchable.rb, line 123 def initialize(*args, &block) super() @vbx_x, @vbx_y, @vbx_width, @vbx_height = nil @meet_or_slice = 'meet' @align = nil end
Public Instance Methods
viewbox(x, y, width, height) { |self| ... }
click to toggle source
Describe a user coordinate system to be imposed on the viewbox. The
arguments must be numbers and the width
and
height
arguments must be positive.
# File lib/rvg/stretchable.rb, line 137 def viewbox(x, y, width, height) begin @vbx_x = Float(x) @vbx_y = Float(y) @vbx_width = Float(width) @vbx_height = Float(height) rescue ArgumentError raise ArgumentError, "arguments must be convertable to float (got #{x.class}, #{y.class}, #{width.class}, #{height.class})" end fail(ArgumentError, "viewbox width must be > 0 (#{width} given)") unless width >= 0 fail(ArgumentError, "viewbox height must be > 0 (#{height} given)") unless height >= 0 # return the user-coordinate space attributes if defined class << self unless defined? @redefined @redefined = true define_method(:x) { @vbx_x } define_method(:y) { @vbx_y } define_method(:width) { @vbx_width} define_method(:height) { @vbx_height } end end yield(self) if block_given? self end