def pattern(name, x, y, width, height)
      push('defs')
      push("pattern #{name} #{x} #{y} #{width} #{height}")
      push('graphic-context')
      yield
    ensure
      pop('graphic-context')
      pop('pattern')
      pop('defs')
    end
def pattern(name, x, y, width, height)
      push('defs')
      push("pattern #{name} #{x} #{y} #{width} #{height}")
      push('graphic-context')
      yield
    ensure
      pop('graphic-context')
      pop('pattern')
      pop('defs')
    end
Define a pattern. In the block, call primitive methods to
 draw the pattern. Reference the pattern by using its name
 as the argument to the 'fill' or 'stroke' methods