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.



205
206
207
# File 'lib/lalka.rb', line 205

def initialize(queue)
  @queue = queue
end

Instance Method Details

#reject(error) ⇒ Object



218
219
220
221
222
223
224
225
226
227
# File 'lib/lalka.rb', line 218

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



209
210
211
212
213
214
215
216
# File 'lib/lalka.rb', line 209

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