lib/riemann/babbler/support/monkey_patches.rb in riemann-babbler-1.3.0 vs lib/riemann/babbler/support/monkey_patches.rb in riemann-babbler-1.3.1
- old
+ new
@@ -19,5 +19,23 @@
end
alias :append_bytes :append_string
end
end
+
+class IO
+ TAIL_BUF_LENGTH = 1 << 16
+
+ def tail(n)
+ return [] if n < 1
+
+ seek -TAIL_BUF_LENGTH, SEEK_END
+
+ buf = ""
+ while buf.count("\n") <= n
+ buf = read(TAIL_BUF_LENGTH) + buf
+ seek 2 * -TAIL_BUF_LENGTH, SEEK_CUR
+ end
+
+ buf.split("\n")[-n..-1]
+ end
+end