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