Class: Jade::Decode::Desc::Lst

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

#innerObject (readonly)

Returns the value of attribute inner

Returns:

  • (Object)

    the current value of inner



163
164
165
# File 'lib/jade/decode.rb', line 163

def inner
  @inner
end

Instance Method Details

#decode(value) ⇒ Object



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/jade/decode.rb', line 166

def decode(value)
  return type_err('Array', value) unless ::Array === value

  size = value.length
  values = ::Array.new(size)
  errors = nil
  i = 0

  while i < size
    decoded = inner.decode(value[i])
    decoded?(decoded) ? values[i] = decoded : (errors ||= []) << AtIndex[i, decoded.error]
    i += 1
  end

  errors ? Failure.new(wrap_errors(errors)) : values
end