defmodule Reactivity.Builtins do use GenServer alias Reactivity.Signal.Source require Logger import GenServer ####################### # GenServer Interface # ####################### def start_link([]) do start_link(__MODULE__, [], [{:name, __MODULE__}]) end def init([]) do Logger.debug "Reactivity: Starting built-in signals.." {:ok, _t} = Source.new(fn(_old_value) -> Enum.random(0..500) end, -1, 2000, :temperature) {:ok, _tg} = Source.new( fn(_old_value) -> :os.system_time(:second) end, :os.system_time(:second), 1000, :seconds) {:ok, _tg} = Source.new( fn(_old_value) -> round(:os.system_time(:seconds) / 60) end, round(:os.system_time(:seconds) / 60), 1000 * 60, :minutes) {:ok, _tg} = Source.new( fn(_old_value) -> :os.system_time(:second) end, round(:os.system_time(:seconds) / (60 * 60)), 1000 * 60 * 60, :hours) Logger.debug "Done" {:ok, %{}} end end