Method: BinData::LazyEvaluator#index

Defined in:
lib/bindata/lazy.rb

#indexObject

Returns the index of this data object inside it’s nearest container array.

Raises:

  • (NoMethodError)


50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/bindata/lazy.rb', line 50

def index
  return @overrides[:index] if defined?(@overrides) && @overrides.key?(:index)

  child = @obj
  parent = @obj.parent
  while parent
    if parent.respond_to?(:find_index_of)
      return parent.find_index_of(child)
    end
    child = parent
    parent = parent.parent
  end
  raise NoMethodError, "no index found"
end