Class: Lalka::Internal

Inherits:
InternalBase show all
Defined in:
lib/lalka.rb

Instance Method Summary collapse

Methods inherited from InternalBase

#call, #on_error, #on_success, #try

Constructor Details

#initialize(queue) ⇒ Internal

Returns a new instance of Internal.



211
212
213
# File 'lib/lalka.rb', line 211

def initialize(queue)
  @queue = queue
end

Instance Method Details

#reject(error) ⇒ Object



224
225
226
227
228
229
230
231
232
233
# File 'lib/lalka.rb', line 224

def reject(error)
  result =
    if @on_error.nil?
      ArgumentError.new('missing on_error block')
    else
      @on_error.call(error)
    end

  @queue.push M.Left(result)
end

#resolve(value) ⇒ Object



215
216
217
218
219
220
221
222
# File 'lib/lalka.rb', line 215

def resolve(value)
  if @on_success.nil?
    reject(ArgumentError.new('missing on_success block'))
  else
    result = @on_success.call(value)
    @queue.push M.Right(result)
  end
end