module Reacto::Behaviours
Public Instance Methods
array_repeat_enumerator(array)
click to toggle source
# File lib/reacto/behaviours.rb, line 53 def array_repeat_enumerator(array) size = array.size Enumerator.new do |yielder| n = 0 loop do yielder.yield array[n % size] n = n + 1 end end end
constant(const)
click to toggle source
# File lib/reacto/behaviours.rb, line 65 def constant(const) -> (_val) { const } end
enumerable(enumerable_value)
click to toggle source
# File lib/reacto/behaviours.rb, line 28 def enumerable(enumerable_value) ->(tracker) do begin enumerable_value.each do |val| break unless tracker.subscribed? tracker.on_value(val) end tracker.on_close if tracker.subscribed? rescue => error tracker.on_error(error) if tracker.subscribed? end end end
integers_enumerator()
click to toggle source
# File lib/reacto/behaviours.rb, line 43 def integers_enumerator Enumerator.new do |yielder| n = 0 loop do yielder << n n = n + 1 end end end
same_predicate(val)
click to toggle source
# File lib/reacto/behaviours.rb, line 69 def same_predicate(val) -> (value) { val == value } end
single_tracker_value(tracker, value)
click to toggle source
# File lib/reacto/behaviours.rb, line 14 def single_tracker_value(tracker, value) with_close_and_error(tracker) do |subscriber| subscriber.on_value(value) if subscriber.subscribed? end end
single_value(value)
click to toggle source
# File lib/reacto/behaviours.rb, line 20 def single_value(value) lambda do |tracker| with_close_and_error(tracker) do |subscriber| subscriber.on_value(value) if subscriber.subscribed? end end end
with_close_and_error(tracker) { |tracker| ... }
click to toggle source
# File lib/reacto/behaviours.rb, line 5 def with_close_and_error(tracker, &block) begin yield tracker if block_given? tracker.on_close if tracker.subscribed? rescue StandardError => error tracker.on_error(error) if tracker.subscribed? end end