class Reacto::Operations::Diff

Constants

DEFAULT_FN

Public Class Methods

new(fn = DEFAULT_FN, initial = NO_VALUE) click to toggle source
# File lib/reacto/operations/diff.rb, line 9
def initialize(fn = DEFAULT_FN, initial = NO_VALUE)
  @fn = fn
  @initial = initial
end

Public Instance Methods

call(tracker) click to toggle source
# File lib/reacto/operations/diff.rb, line 14
def call(tracker)
  prev = @initial
  value = -> (v) do
    if prev == NO_VALUE
      prev = v
      return
    end

    current = @fn.call(prev, v)
    prev = v

    tracker.on_value(current)
  end


  Subscriptions::OperationSubscription.new(tracker, value: value)
end