lib/kumogata/client.rb in kumogata-0.1.7 vs lib/kumogata/client.rb in kumogata-0.1.8
- old
+ new
@@ -152,11 +152,11 @@
:encode => true,
:strip => true,
}.merge(options)
if options[:strip]
- data = data.split("\n").map {|i| i.gsub(/\A\s+/, "") }.join("\n") + "\n"
+ data = data.split("\n").map {|i| i.gsub(/\A\s+/, '') }.join("\n") + "\n"
end
data = data.encode64 if options[:encode]
return data
@@ -178,26 +178,38 @@
@__refs__ = nil
data = data.flatten.select {|i| not i.nil? }
if options[:strip]
- prev_not_str = false
+ prev_elem_is_string = true
- data = data.map do |item|
+ data = data.map {|item|
if item.kind_of?(String)
- item = item.split("\n").map {|i|
- prev_not_str ? i : i.gsub(/\A\s+/, "")
- }.join("\n")
- prev_not_str = false
- item
+ new_item = []
+ splited = item.split("\n")
+
+ splited.each_with_index do |i, idx|
+ unless idx.zero? and not prev_elem_is_string
+ i.gsub!(/\A\s+/, '')
+ end
+
+ if idx < splited.length - 1
+ i << "\n"
+ end
+
+ new_item << i
+ end
+
+ prev_elem_is_string = true
+ new_item
else
- prev_not_str = true
+ prev_elem_is_string = false
item
end
- end
+ }.flatten
end
- if data.last.kind_of?(String) and data.last.strip == ""
+ if data.last.kind_of?(String) and data.last.strip.empty?
data.last.replace("\n")
end
unless data.last.kind_of?(String) and data.last =~ /\n\Z/
data << "\n"