Module: Explicit::Spec::Default

Extended by:
Default
Included in:
Default
Defined in:
lib/explicit/spec/default.rb

Instance Method Summary collapse

Instance Method Details

#build(defaultval, subspec) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/explicit/spec/default.rb', line 6

def build(defaultval, subspec)
  subspec_validator = Explicit::Spec::build(subspec)

  lambda do |value|
    value =
      if value.nil?
        defaultval.respond_to?(:call) ? defaultval.call : defaultval
      else
        value
      end

    subspec_validator.call(value)
  end
end