Class: Streamlet

Inherits:
Object
  • Object
show all
Defined in:
lib/streamlet.rb,
lib/streamlet/version.rb

Defined Under Namespace

Classes: Failure

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Constructor Details

#initialize(operation, *args) ⇒ Streamlet

Returns a new instance of Streamlet.



4
5
6
7
8
# File 'lib/streamlet.rb', line 4

def initialize(operation, *args)
  @operation = operation
  @args = args
  @success_test = proc { |resp| !!resp }
end

Instance Method Details

#and_then(next_operation) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/streamlet.rb', line 15

def and_then(next_operation)
  if success_test.call(result)
    Streamlet.new(next_operation, result).
      set_success_test(success_test)
  else
    Failure.new(result)
  end
end

#resultObject



24
25
26
# File 'lib/streamlet.rb', line 24

def result
  @result ||= operation.call(*args)
end

#set_success_test(success_test) ⇒ Object



10
11
12
13
# File 'lib/streamlet.rb', line 10

def set_success_test(success_test)
  @success_test = success_test
  self
end