class Reacto::Operations::Map
Public Class Methods
new(mapping, error: nil, close: nil)
click to toggle source
# File lib/reacto/operations/map.rb, line 7 def initialize(mapping, error: nil, close: nil) @mapping = mapping @error = error @close = close end
Public Instance Methods
call(tracker)
click to toggle source
# File lib/reacto/operations/map.rb, line 13 def call(tracker) error = if @error -> (e) { tracker.on_error(@error.call(e)) } else tracker.method(:on_error) end close = if @close -> () do tracker.on_value(@close.call) tracker.on_close end else tracker.method(:on_close) end Subscriptions::OperationSubscription.new( tracker, value: -> (v) { tracker.on_value(@mapping.call(v)) }, error: error, close: close ) end