Skip to content

Commit a6542d7

Browse files
committed
- ruby's String#split has some really shitty defaults.
"foo\n".split("\n") == [ "foo" ] when it should really be [ "foo", "" ] which can be achieved with String#split("\n", -1) (╯°□°)╯︵ ┻━┻
1 parent b2e243f commit a6542d7

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/logstash/config/config_ast.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def compile
6464

6565
definitions << " @logger.info(\"#{type} received\", :event => event)"
6666
sections.select { |s| s.plugin_type.text_value == type }.each do |s|
67-
definitions << s.compile.split("\n").map { |e| " #{e}" }.join("\n")
67+
definitions << s.compile.split("\n", -1).map { |e| " #{e}" }.join("\n")
6868
end
6969

7070
if type == "filter"
@@ -73,7 +73,7 @@ def compile
7373
definitions << "end"
7474
end
7575

76-
code += definitions.join("\n").split("\n").collect { |l| " #{l}" }
76+
code += definitions.join("\n").split("\n", -1).collect { |l| " #{l}" }
7777
code << "end"
7878
return code.join("\n")
7979
end
@@ -232,21 +232,21 @@ class If < Node
232232
def compile
233233
children = recursive_inject { |e| e.is_a?(Branch) || e.is_a?(Plugin) }
234234
return "if #{condition.compile}\n" \
235-
<< children.collect(&:compile).map { |s| s.split("\n").map { |l| " " + l }.join("\n") }.join("") << "\n"
235+
<< children.collect(&:compile).map { |s| s.split("\n", -1).map { |l| " " + l }.join("\n") }.join("") << "\n"
236236
end
237237
end
238238
class Elsif < Node
239239
def compile
240240
children = recursive_inject { |e| e.is_a?(Branch) || e.is_a?(Plugin) }
241241
return "elsif #{condition.compile}\n" \
242-
<< children.collect(&:compile).map { |s| s.split("\n").map { |l| " " + l }.join("\n") }.join("") << "\n"
242+
<< children.collect(&:compile).map { |s| s.split("\n", -1).map { |l| " " + l }.join("\n") }.join("") << "\n"
243243
end
244244
end
245245
class Else < Node
246246
def compile
247247
children = recursive_inject { |e| e.is_a?(Branch) || e.is_a?(Plugin) }
248248
return "else\n" \
249-
<< children.collect(&:compile).map { |s| s.split("\n").map { |l| " " + l }.join("\n") }.join("") << "\n"
249+
<< children.collect(&:compile).map { |s| s.split("\n", -1).map { |l| " " + l }.join("\n") }.join("") << "\n"
250250
end
251251
end
252252

0 commit comments

Comments
 (0)