Class: Jade::Decode::Desc::AndMap

Inherits:
Data
  • Object
show all
Includes:
Node
Defined in:
lib/jade/decode.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Node

#decoded?

Instance Attribute Details

#value_dObject (readonly)

Returns the value of attribute value_d

Returns:

  • (Object)

    the current value of value_d



322
323
324
# File 'lib/jade/decode.rb', line 322

def value_d
  @value_d
end

#wrappedObject (readonly)

Returns the value of attribute wrapped

Returns:

  • (Object)

    the current value of wrapped



322
323
324
# File 'lib/jade/decode.rb', line 322

def wrapped
  @wrapped
end

Instance Method Details

#decode(value) ⇒ Object



325
326
327
328
329
330
331
332
333
334
335
# File 'lib/jade/decode.rb', line 325

def decode(value)
  fn = wrapped.decode(value)
  arg = value_d.decode(value)

  return fn.call(arg) if decoded?(fn) && decoded?(arg)

  [fn, arg]
    .reject { decoded?(it) }
    .map(&:error)
    .then { Failure.new(wrap_errors(it)) }
end