Module: Magick::RVG::Stretchable
Overview
The methods in this module describe the user-coordinate space. RVG and Pattern objects are stretchable.
Instance Method Summary collapse
-
#viewbox(x, y, width, height) {|_self| ... } ⇒ Object
Describe a user coordinate system to be imposed on the viewbox.
Methods included from PreserveAspectRatio
Instance Method Details
#viewbox(x, y, width, height) {|_self| ... } ⇒ Object
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.
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/rvg/stretchable.rb', line 136 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 |