def graph_save(permanent: false, &block)
      if block
        Tempfile.open{|tmp|
          graph(output: tmp)
          tmp.seek(0)
          block.(tmp)
        }
      else
        tmp = Tempfile.open
        graph(output: tmp).tap{|t|t.seek(0)}
      end
    end
def graph_save(permanent: false, &block)
      if block
        Tempfile.open{|tmp|
          graph(output: tmp)
          tmp.seek(0)
          block.(tmp)
        }
      else
        tmp = Tempfile.open
        graph(output: tmp).tap{|t|t.seek(0)}
      end
    end
Graph.graph の結果を内容とする一時ファイルを作成して返す。
 ただし、ブロックを渡された場合は、一時ファイルを引数にそのブロックを一度だけ実行し、ブロックの戻り値をこのメソッドの戻り値とする。
 ==== Args
 [&block] 一時ファイルを利用する処理
 ==== Return
 [Tempfile] ブロックを指定しなかった場合。作成された一時ファイルオブジェクト
 [Object] ブロックが指定された場合。ブロックの実行結果。