Class: Jade::Decode::Desc::Optional

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

#defaultObject (readonly)

Returns the value of attribute default

Returns:

  • (Object)

    the current value of default



137
138
139
# File 'lib/jade/decode.rb', line 137

def default
  @default
end

#innerObject (readonly)

Returns the value of attribute inner

Returns:

  • (Object)

    the current value of inner



137
138
139
# File 'lib/jade/decode.rb', line 137

def inner
  @inner
end

#keyObject (readonly)

Returns the value of attribute key

Returns:

  • (Object)

    the current value of key



137
138
139
# File 'lib/jade/decode.rb', line 137

def key
  @key
end

Instance Method Details

#decode(value) ⇒ Object



140
141
142
143
144
145
146
147
148
# File 'lib/jade/decode.rb', line 140

def decode(value)
  h = coerce_hash(value)
  return type_err('Object', value) unless h

  raw = at_key(h, key.to_sym, key)
  return default if ABSENT.equal?(raw) || raw.nil?

  at_field(key.to_s, inner.decode(raw))
end