Method: Neovim::Logging::Text#put

Defined in:
lib/neovim/logging.rb

#put(**fields) ⇒ Object



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/neovim/logging.rb', line 140

def put **fields
  put_sep
  l = [
    ((fields.delete :time).strftime "%H:%M:%S"),
    ((fields.delete :pid).to_s.rjust 5),
    (fields.delete :caller).to_s[ %r([^/]+:\d+)],
    (fields.delete :level),
    (fields.delete :message).inspect,
    (fields.delete :sender).class_name,
    ((fields.map { |k,v| "#{k}:#{v}" }.join " ").axe @maxlen),
  ]
  if @color then
    l = l.zip COLORS
    l.map! do |f,c| "\e[#{c}m#{f}\e[m" end
  end
  if @short then
    s = l.shift 3
    if not @nexttime or @nexttime < Time.now then
      @file.puts s.join " "
      @nexttime = Time.now + 120
    end
  end
  @file.puts l.join " "
  @file.flush
  nil
end