# 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
                raise(ArgumentError, "viewbox width must be > 0 (#{width} given)") unless width >= 0
                raise(ArgumentError, "viewbox height must be > 0 (#{height} given)") unless height >= 0

                # return the user-coordinate space attributes if defined
                class << self
                  if not defined? @redefined then
                    @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