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.2"

Instance Method Summary collapse

Constructor Details

#initialize(*args, &operation) ⇒ Streamlet



2
3
4
5
6
# File 'lib/streamlet.rb', line 2

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

Instance Method Details

#and_then(&next_operation) ⇒ Object



13
14
15
16
17
18
19
20
# 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

#resultObject



22
23
24
# File 'lib/streamlet.rb', line 22

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

#set_success_test(&success_test) ⇒ Object



8
9
10
11
# File 'lib/streamlet.rb', line 8

def set_success_test(&success_test)
  @success_test = success_test
  self
end