Class: ChiliLogger::CoverageWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/helpers/logs_coverage/coverage_writer.rb

Overview

class for keeping logs coverage up to date

Class Method Summary collapse

Class Method Details

.read_fileObject



23
24
25
26
27
28
29
# File 'lib/helpers/logs_coverage/coverage_writer.rb', line 23

def self.read_file
  file_exists = File.file?(file_path)
  file = file_exists ? YAML.load_file(file_path) : {}

  # workaround for a bug in YAML lib, in which #load_file returns nil if file is empty, instead of an empty hash
  file.nil? ? {} : file
end

.write(desc, backtrace) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/helpers/logs_coverage/coverage_writer.rb', line 9

def self.write(desc, backtrace)
  default = ChiliLogger::Values::Default.new
  coverage = read_file

  type = desc[:type] || default.type
  service = desc[:service] || default.service
  action = desc[:action] || default.action
  keys = [type, service, action]

  coverage = add_nested_value(coverage, keys, backtrace)

  write_file(coverage)
end

.write_file(file) ⇒ Object



31
32
33
34
35
# File 'lib/helpers/logs_coverage/coverage_writer.rb', line 31

def self.write_file(file)
  FileUtils.mkdir(dir_name) unless File.directory?(dir_name)
  File.open(file_path, 'w') { |f| YAML.dump(file, f) }
  true
end