adding the actual references for referenced objects

This commit is contained in:
Torsten Ruger
2014-08-18 13:53:05 +03:00
parent 67c3fb6cb0
commit 1dee9a4bd1
8 changed files with 40 additions and 25 deletions

View File

@@ -22,19 +22,20 @@ module Sof
#puts "level #{level} at #{occurence.level}"
return SimpleNode.new("*#{occurence.number}")
end
ref = occurence.referenced ? occurence.number : nil
if(object.respond_to? :to_sof_node) #mainly meant for arrays and hashes
object.to_sof_node(self , level )
object.to_sof_node(self , level , ref )
else
object_sof_node(object , level )
object_sof_node(object , level , ref )
end
end
def object_sof_node( object , level)
def object_sof_node( object , level , ref)
head = object.class.name + "("
atts = attributes_for(object)
immediate , extended = atts.partition {|a| is_value?(get_value(object , a) ) }
head += immediate.collect {|a| "#{a}: #{get_value(object , a).to_sof()}"}.join(", ") + ")"
node = ObjectNode.new(head)
node = ObjectNode.new(head , ref)
extended.each do |a|
val = get_value(object , a)
node.add( to_sof_node(a,level + 1) , to_sof_node(val, level + 1) )