Packages

Observables in the spirit of Reactive Extensions for Elixir, extended with advanced primitives for combination and classic reactive programming.

Current section

Files

Jump to
observables_extended lib subject.ex
Raw

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