class Reacto::Operations::Append
Attributes
to_append[R]
Public Class Methods
new(to_append, condition: nil)
click to toggle source
# File lib/reacto/operations/append.rb, line 8 def initialize(to_append, condition: nil) @to_append = to_append @condition = condition end
Public Instance Methods
call(tracker)
click to toggle source
# File lib/reacto/operations/append.rb, line 13 def call(tracker) empty = true on_value = if @condition == :source_empty -> (v) do empty = false if empty tracker.on_value(v) end else tracker.method(:on_value) end on_close = -> () do if (@condition == :source_empty && empty) || @condition.nil? if to_append.respond_to? :each to_append.each { |v| tracker.on_value(v) } else tracker.on_value(to_append) end end tracker.on_close end Subscriptions::OperationSubscription.new( tracker, close: on_close, value: on_value ) end