class Frypan::Reactor

Reactor : Object to calculate (Signal -> Value)


Public Class Methods

new(signal, init_memos=[{}, {}]) click to toggle source
# File lib/frypan.rb, line 11
def initialize(signal, init_memos=[{}, {}])
  @signal = signal
  @init_memos = init_memos
end

Public Instance Methods

each(&block) click to toggle source
# File lib/frypan.rb, line 25
def each(&block)
  loop(&block)
end
loop(&block) click to toggle source
# File lib/frypan.rb, line 16
def loop(&block)
  memos = @init_memos
  while true
    last_memo = @signal.__pull({}, *memos)
    memos = [last_memo, memos[0]]
    block.call(last_memo[@signal])
  end
end