Elixir v1.3.2 StringIO
Controls an IO device process that wraps a string.
A StringIO
IO device can be passed as a “device” to
most of the functions in the IO
module.
Examples
iex> {:ok, pid} = StringIO.open("foo")
iex> IO.read(pid, 2)
"fo"
Summary
Functions
Stops the IO device and returns the remaining input/output buffers
Returns the current input/output buffers for the given IO device
Flushes the output buffer and returns its current contents
Creates an IO device
Functions
Specs
close(pid) :: {:ok, {binary, binary}}
Stops the IO device and returns the remaining input/output buffers.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.close(pid)
{:ok, {"in", "out"}}
Specs
contents(pid) :: {binary, binary}
Returns the current input/output buffers for the given IO device.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.contents(pid)
{"in", "out"}
Specs
flush(pid) :: binary
Flushes the output buffer and returns its current contents.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.flush(pid)
"out"
iex> StringIO.contents(pid)
{"in", ""}
Specs
open(binary, Keyword.t) :: {:ok, pid}
Creates an IO device.
string
will be the initial input of the newly created
device.
If the :capture_prompt
option is set to true
,
prompts (specified as arguments to IO.get*
functions)
are captured.
Examples
iex> {:ok, pid} = StringIO.open("foo")
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ""}
iex> {:ok, pid} = StringIO.open("foo", capture_prompt: true)
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ">"}