Module Amrita::AttrArrayCommon
|
|
Enumerable
# File lib/amrita/node.rb, line 131
def clone
self.class.new(array.collect { |a| a.clone } )
end
# File lib/amrita/node.rb, line 135
def dup
self.class.new(array.collect { |a| a.clone } )
end
# File lib/amrita/node.rb, line 139
def inspect
to_ruby
end
# File lib/amrita/node.rb, line 143
def clear
array.clear
end
# File lib/amrita/node.rb, line 147
def [](index)
array[index]
end
# File lib/amrita/node.rb, line 151
def []=(index, val)
array[index] = val
val
end
# File lib/amrita/node.rb, line 157
def each(&block)
array.each(&block)
end
# File lib/amrita/node.rb, line 161
def size
array.size
end
# File lib/amrita/node.rb, line 165
def attr_by_key(key)
each do |a|
return a if a.key_symbol == key
end
nil
end
# File lib/amrita/node.rb, line 172
def value_by_key(key)
each do |a|
return a.value if a.key_symbol == key
end
nil
end
# File lib/amrita/node.rb, line 179
def to_hash
ret = {}
each do |a|
ret[a.key.intern] = a.value
end
ret
end
# File lib/amrita/node.rb, line 187
def keys
collect { |a| a.key_symbol }
end
# File lib/amrita/node.rb, line 191
def to_ruby
ret = "a(" + array.collect {|a| "#{a.key_symbol.to_ruby}=>#{a.value.inspect}"}.join(", ") + ")"
case body
when nil, Null
when Node
ret += body.to_ruby
else
ret += body.inspect
end
ret
end