diff options
Diffstat (limited to 'lib/soap/generator.rb')
-rw-r--r-- | lib/soap/generator.rb | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/soap/generator.rb b/lib/soap/generator.rb index e0ac484c42..7ddb105f7d 100644 --- a/lib/soap/generator.rb +++ b/lib/soap/generator.rb @@ -145,14 +145,17 @@ public end def encode_tag(elename, attrs = nil) - if attrs - @buf << "\n#{ @indent }<#{ elename }" << - attrs.collect { |key, value| - %Q[ #{ key }="#{ value }"] - }.join << - '>' - else + if !attrs or attrs.empty? @buf << "\n#{ @indent }<#{ elename }>" + elsif attrs.size == 1 + key, value = attrs.shift + @buf << %Q[\n#{ @indent }<#{ elename } #{ key }="#{ value }">] + else + @buf << "\n#{ @indent }<#{ elename } " << + attrs.collect { |key, value| + %Q[#{ key }="#{ value }"] + }.join("\n#{ @indent } ") << + '>' end end |