Method: HTree::Elem#get_subnode_internal

Defined in:
lib/htree/elem.rb

#get_subnode_internal(index) ⇒ Object

:nodoc:



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/htree/elem.rb', line 114

def get_subnode_internal(index) # :nodoc:
  case index
  when String
    name = Name.parse_attribute_name(index, DefaultContext)
    update_attribute_hash[name.universal_name]
  when Name
    update_attribute_hash[index.universal_name]
  when Integer
    if index < 0 || @children.length <= index
      nil
    else
      @children[index]
    end
  else
    raise TypeError, "invalid index: #{index.inspect}"
  end
end