# File lib/builder/xmlbase.rb, line 40
40:     def method_missing(sym, *args, &block)
41:       text = nil
42:       attrs = nil
43:       sym = "#{sym}:#{args.shift}" if args.first.kind_of?(::Symbol)
44:       args.each do |arg|
45:         case arg
46:         when ::Hash
47:           attrs ||= {}
48:           attrs.merge!(arg)
49:         else
50:           text ||= ''
51:           text << arg.to_s
52:         end
53:       end
54:       if block
55:         unless text.nil?
56:           ::Kernel::raise ::ArgumentError,
57:             "XmlMarkup cannot mix a text argument with a block"
58:         end
59:         _indent
60:         _start_tag(sym, attrs)
61:         _newline
62:         begin
63:           _nested_structures(block)
64:         ensure
65:           _indent
66:           _end_tag(sym)
67:           _newline
68:         end
69:       elsif text.nil?
70:         _indent
71:         _start_tag(sym, attrs, true)
72:         _newline
73:       else
74:         _indent
75:         _start_tag(sym, attrs)
76:         text! text
77:         _end_tag(sym)
78:         _newline
79:       end
80:       @target
81:     end