Class: Lego::Value::Base
- Inherits:
-
Object
show all
- Defined in:
- lib/lego/value/base.rb
Instance Method Summary
collapse
Constructor Details
#initialize(opts = {}) ⇒ Base
Returns a new instance of Base.
4
5
6
|
# File 'lib/lego/value/base.rb', line 4
def initialize(opts={})
@opts = opts
end
|
Instance Method Details
#coerce(val) ⇒ Object
24
25
26
27
|
# File 'lib/lego/value/base.rb', line 24
def coerce(val)
res = parse(val)
res.value? ? res.value : fail(Lego::CoerceError, res.error)
end
|
#parse(val) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/lego/value/base.rb', line 8
def parse(val)
val = val.nil? ? Lego.none : Lego.just(val)
parsers.each do |callable|
val = val.next(callable)
end
return val unless val.none?
if @opts[:default]
Lego.just(@opts[:default].call)
else
Lego.fail('missing value')
end
end
|
#parsers ⇒ Object
29
30
31
|
# File 'lib/lego/value/base.rb', line 29
def parsers
[]
end
|