Class: Consequence::Monad
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(value) ⇒ Monad
Returns a new instance of Monad.
19
20
21
|
# File 'lib/consequence/monad.rb', line 19
def initialize(value)
@value = value
end
|
Instance Attribute Details
Returns the value of attribute value.
23
24
25
|
# File 'lib/consequence/monad.rb', line 23
def value
@value
end
|
Class Method Details
.[](value) ⇒ Object
6
7
8
|
# File 'lib/consequence/monad.rb', line 6
def [](value)
new(value)
end
|
.inherited(child) ⇒ Object
10
11
12
13
14
15
16
|
# File 'lib/consequence/monad.rb', line 10
def inherited(child)
return unless child.name
query_name = Inflecto.demodulize(child.name)
query_name = Inflecto.underscore(query_name)
query_name = "#{query_name}?".to_sym
define_method(query_name) { self.is_a?(child) }
end
|
Instance Method Details
30
31
32
33
|
# File 'lib/consequence/monad.rb', line 30
def <<(obj)
bind(obj.to_proc)
self
end
|
#==(other) ⇒ Object
35
36
37
|
# File 'lib/consequence/monad.rb', line 35
def ==(other)
self.class == other.class && value == other.value
end
|
25
26
27
28
|
# File 'lib/consequence/monad.rb', line 25
def >>(obj)
obj = obj.to_proc if obj.respond_to?(:to_proc)
wrap(bind(obj))
end
|
43
44
45
|
# File 'lib/consequence/monad.rb', line 43
def inspect
"#{self.class}[#{value.inspect}]"
end
|
39
40
41
|
# File 'lib/consequence/monad.rb', line 39
def to_s
value.to_s
end
|