Class: Consequence::Monad

Inherits:
Object show all
Defined in:
lib/consequence/monad.rb

Direct Known Subclasses

NullMonad, Something, Success

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Monad

Returns a new instance of Monad.



7
8
9
# File 'lib/consequence/monad.rb', line 7

def initialize(value)
  @value = value
end

Instance Attribute Details

#valueObject (readonly)

Returns the value of attribute value.



11
12
13
# File 'lib/consequence/monad.rb', line 11

def value
  @value
end

Class Method Details

.[](value) ⇒ Object



3
4
5
# File 'lib/consequence/monad.rb', line 3

def self.[](value)
  new(value)
end

Instance Method Details

#<<(proc) ⇒ Object



17
18
19
20
# File 'lib/consequence/monad.rb', line 17

def <<(proc)
  bind(proc.to_proc)
  self
end

#==(other) ⇒ Object



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

def ==(other)
  self.class == other.class && value == other.value
end

#>>(proc) ⇒ Object



13
14
15
# File 'lib/consequence/monad.rb', line 13

def >>(proc)
  wrap(bind(proc.to_proc))
end

#inspectObject



30
31
32
# File 'lib/consequence/monad.rb', line 30

def inspect
  "#{self.class}[#{value.inspect}]"
end

#to_sObject



26
27
28
# File 'lib/consequence/monad.rb', line 26

def to_s
  value.to_s
end