defmodule Reactivity.Test do require Integer require Logger alias Reactivity.Signal.Source def hot_cold(t) do if t > 30 do "hot" else "cold" end end def init do {:ok, t} = Source.new(fn(_old_value) -> Enum.random(10..100) end, -1, 100, :temperature) #{:ok, h} = Source.new(fn(_old_value) -> Enum.random(60..100) end, -1, 100, :humidity) end def test do # Print out "hot" or "cold" when temp changes. Reactivity.source(:temperature) |> Reactivity.liftapp(&hot_cold/1) |> Reactivity.liftapp(&(Logger.debug "Celcius: #{&1}")) # Create a new signal in Kelvin. kelvin = Reactivity.source(:temperature) |> Reactivity.liftapp(&(&1 + 237.15)) # Print out hot/cold for the kelvin signal |> Reactivity.liftapp(&hot_cold/1) |> Reactivity.liftapp(&(Logger.debug "Kelvin: #{&1}")) end end