Current section
Files
Jump to
Current section
Files
lib/subject.ex
defmodule Observables.Subject do
alias Observables.GenObservable
@moduledoc """
Subject defines functions to create and interact with subjects.
A Subject is an observable which acts as a regular observer. It can be observed as usual, but it also allows the programmer to manually send messages to the process. The Subject will then emit the values.
Have a look at test/subject_test.ex for a simple example.
"""
def create() do
{:ok, pid} = GenObservable.spawn_supervised(Observables.Operator.Subject)
{fn observer ->
GenObservable.send_to(pid, observer)
end, pid}
end
def next({_f, pid}, v) do
GenObservable.send_event(pid, v)
end
def done({_f, pid}) do
GenObservable.stop(pid)
end
end