class Logcli::Actions::ExtractJson
Attributes
filenames[R]
Public Class Methods
new(opts)
click to toggle source
# File lib/logcli/actions/extract_json.rb, line 5 def initialize opts @filenames = opts.fetch(:filenames) end
Public Instance Methods
call()
click to toggle source
# File lib/logcli/actions/extract_json.rb, line 9 def call filenames.each do |filename| outfile = generate_out_filename filename File.open outfile, 'w' do |out| File.open(filename).each do |line| out_line = process line out.puts out_line if out_line end end end end
Private Instance Methods
generate_out_filename(filename)
click to toggle source
# File lib/logcli/actions/extract_json.rb, line 29 def generate_out_filename filename dir = File.dirname(filename) name = File.basename(filename, ".*") ext= File.extname(filename) File.join dir, "#{name}_json#{ext}" end
process(line)
click to toggle source
# File lib/logcli/actions/extract_json.rb, line 23 def process line match = line.match /(\{.*\})/ return nil unless match match[1] end