def push(*what)
      if what.length.zero?
        primitive 'push graphic-context'
      else
        # to_s allows a Symbol to be used instead of a String
        primitive 'push ' + what.map(&:to_s).join(' ')
      end
    end
def push(*what)
      if what.length.zero?
        primitive 'push graphic-context'
      else
        # to_s allows a Symbol to be used instead of a String
        primitive 'push ' + what.map(&:to_s).join(' ')
      end
    end
Push the current set of drawing options. Also you can use
 push('graphic-context') (the default if no arguments)
 push('defs')
 push('gradient')
 push('pattern')