class Streamlet

Constants

VERSION

Attributes

args[R]
operation[R]
success_test[R]

Public Class Methods

new(*args, &operation) click to toggle source
# File lib/streamlet.rb, line 2
def initialize(*args, &operation)
  @args = args
  @operation = operation
  @success_test = proc { |resp| !!resp }
end

Public Instance Methods

and_then(&next_operation) click to toggle source
# File lib/streamlet.rb, line 13
def and_then(&next_operation)
  if success_test.call(result)
    Streamlet.new(result, &next_operation).
      set_success_test(&success_test)
  else
    Failure.new(result)
  end
end
result() click to toggle source
# File lib/streamlet.rb, line 22
def result
  @result ||= operation.call(*args)
end
set_success_test(&success_test) click to toggle source
# File lib/streamlet.rb, line 8
def set_success_test(&success_test)
  @success_test = success_test
  self
end