class ChiliLogger::CoverageWriter

class for keeping logs coverage up to date

Public Class Methods

read_file() click to toggle source
# File lib/helpers/logs_coverage/coverage_writer.rb, line 22
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) click to toggle source
# 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) click to toggle source
# File lib/helpers/logs_coverage/coverage_writer.rb, line 30
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

Private Class Methods

add_nested_value(object, keys, final_value) click to toggle source

private class methods

# File lib/helpers/logs_coverage/coverage_writer.rb, line 38
def self.add_nested_value(object, keys, final_value)
  return final_value if keys.empty?

  current_key = keys.first
  nested_object = object[current_key] || {}
  nested_keys = keys.drop(1)
  object[current_key] = add_nested_value(nested_object, nested_keys, final_value)

  object
end
dir_name() click to toggle source
# File lib/helpers/logs_coverage/coverage_writer.rb, line 49
def self.dir_name
  'log'
end
file_name() click to toggle source
# File lib/helpers/logs_coverage/coverage_writer.rb, line 53
def self.file_name
  'chili-logger-coverage.yml'
end
file_path() click to toggle source
# File lib/helpers/logs_coverage/coverage_writer.rb, line 57
def self.file_path
  File.join('.', dir_name, file_name)
end