# File lib/ruby-vpi/xx.rb, line 115
115:     def << object
116: #--{{{
117:       t, x = top, object
118: 
119:       if x
120:         case t
121:           when ::REXML::Document
122: 
123:             begin
124:               t <<
125:                 case x
126:                   when ::REXML::Document
127:                     x.root || ::REXML::Text::new(x.to_s)
128:                   when ::REXML::Element
129:                     x
130:                   when ::REXML::CData
131:                     x
132:                   when ::REXML::Text
133:                     x
134:                   else # string
135:                     ::REXML::Text::new(x.to_s)
136:                 end
137:             rescue
138:               if t.respond_to? "root"
139:                 t = t.root
140:                 retry
141:               else
142:                 raise
143:               end
144:             end
145: 
146:           when ::REXML::Element
147:             t <<
148:               case x
149:                 when ::REXML::Document
150:                   x.root || ::REXML::Text::new(x.to_s)
151:                 when ::REXML::Element
152:                   x
153:                 when ::REXML::CData
154:                   #::REXML::Text::new(x.write(""))
155:                   x
156:                 when ::REXML::Text
157:                   x
158:                 else # string
159:                   ::REXML::Text::new(x.to_s)
160:               end
161: 
162:           when ::REXML::Text
163:             t <<
164:               case x
165:                 when ::REXML::Document
166:                   x.write ""
167:                 when ::REXML::Element
168:                   x.write ""
169:                 when ::REXML::CData
170:                   x.write ""
171:                 when ::REXML::Text
172:                   x.write ""
173:                 else # string
174:                   x.to_s
175:               end
176: 
177:           else # other - try anyhow
178:             t <<
179:               case x
180:                 when ::REXML::Document
181:                   x.write ""
182:                 when ::REXML::Element
183:                   x.write ""
184:                 when ::REXML::CData
185:                   x.write ""
186:                 when ::REXML::Text
187:                   x.write ""
188:                 else # string
189:                   x.to_s
190:               end
191:         end
192:       end
193: 
194:       @size += 1
195:       self
196: #--}}}
197:     end