2 people like it.
    Like the snippet!
  
  "use"able temporary file
  A simple shortcut for creating temporary files for unit tests.
  
| 1: 
2: 
3: 
4: 
5: 
 | type TempFile() =
    let path = System.IO.Path.GetTempFileName()
    member x.Path = path
    interface System.IDisposable with
        member x.Dispose() = System.IO.File.Delete(path)
 | 
| 1: 
2: 
3: 
4: 
5: 
6: 
 |     [<Fact>] //check that a round trip yields the same result
    let ReadWriteRoundTrip() =
        use tmp = new TempFile()
        let data = "this is a string\nOn two lines\t."
        filewrite tmp.Path data
        Assert.Equal(data, fileread tmp.Path)
 | 
Multiple items
type TempFile =
  interface IDisposable
  new : unit -> TempFile
  member Path : string
Full name: Script.TempFile
--------------------
new : unit -> TempFile
val path : string
namespace System
namespace System.IO
type Path =
  static val DirectorySeparatorChar : char
  static val AltDirectorySeparatorChar : char
  static val VolumeSeparatorChar : char
  static val InvalidPathChars : char[]
  static val PathSeparator : char
  static member ChangeExtension : path:string * extension:string -> string
  static member Combine : [<ParamArray>] paths:string[] -> string + 3 overloads
  static member GetDirectoryName : path:string -> string
  static member GetExtension : path:string -> string
  static member GetFileName : path:string -> string
  ...
Full name: System.IO.Path
System.IO.Path.GetTempFileName() : string
val x : TempFile
member TempFile.Path : string
Full name: Script.TempFile.Path
type IDisposable =
  member Dispose : unit -> unit
Full name: System.IDisposable
override TempFile.Dispose : unit -> unit
Full name: Script.TempFile.Dispose
type File =
  static member AppendAllLines : path:string * contents:IEnumerable<string> -> unit + 1 overload
  static member AppendAllText : path:string * contents:string -> unit + 1 overload
  static member AppendText : path:string -> StreamWriter
  static member Copy : sourceFileName:string * destFileName:string -> unit + 1 overload
  static member Create : path:string -> FileStream + 3 overloads
  static member CreateText : path:string -> StreamWriter
  static member Decrypt : path:string -> unit
  static member Delete : path:string -> unit
  static member Encrypt : path:string -> unit
  static member Exists : path:string -> bool
  ...
Full name: System.IO.File
System.IO.File.Delete(path: string) : unit
Multiple items
type FactAttribute =
  inherit Attribute
  new : unit -> FactAttribute
Full name: Script.FactAttribute
--------------------
new : unit -> FactAttribute
val ReadWriteRoundTrip : unit -> bool
Full name: Script.Tests.ReadWriteRoundTrip
val tmp : TempFile
val data : string
val filewrite : path:'a -> data:'b -> unit
Full name: Script.filewrite
property TempFile.Path: string
type Assert =
  static member Equal : a:obj * b:obj -> bool
Full name: Script.Assert
static member Assert.Equal : a:obj * b:obj -> bool
val fileread : path:'a -> string
Full name: Script.fileread
  
  
  More information