X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=lib%2Fsup%2Fmodes%2Flog-mode.rb;h=de320ce1c4749f56b8d5502db6e61868b463a206;hb=b119447d2198667e25bad72566581f1f70021417;hp=07fa9dd6cda8d4780676119839ee053baee41560;hpb=8039b8594c5246338406b284ab9b2c4974b77937;p=sup diff --git a/lib/sup/modes/log-mode.rb b/lib/sup/modes/log-mode.rb index 07fa9dd..de320ce 100644 --- a/lib/sup/modes/log-mode.rb +++ b/lib/sup/modes/log-mode.rb @@ -9,9 +9,12 @@ class LogMode < TextMode k.add :toggle_follow, "Toggle follow mode", 'f' end - def initialize buffer_name + ## if buffer_name is supplied, this mode will spawn a buffer + ## upon receiving the << message. otherwise, it will act like + ## a regular buffer. + def initialize autospawn_buffer_name=nil @follow = true - @buffer_name = buffer_name + @autospawn_buffer_name = autospawn_buffer_name @on_kill = [] super() end @@ -28,8 +31,8 @@ class LogMode < TextMode end def << s - unless buffer - BufferManager.spawn @buffer_name, self, :hidden => true, :system => true + if buffer.nil? && @autospawn_buffer_name + BufferManager.spawn @autospawn_buffer_name, self, :hidden => true, :system => true end s.split("\n").each { |l| super(l + "\n") } # insane. different << semantics.