class SimpleCovJSONFormatter::ResultHashFormatter

def format

def format
  format_files
  format_groups
  formatted_result
end

def format_files

def format_files
  @result.files.each do |source_file|
    formatted_result[:coverage][source_file.filename] =
      format_source_file(source_file)
  end
end

def format_groups

def format_groups
  @result.groups.each do |name, file_list|
    formatted_result[:groups][name] = {
      lines: {
        covered_percent: file_list.covered_percent
      }
    }
  end
end

def format_source_file(source_file)

def format_source_file(source_file)
  source_file_formatter = SourceFileFormatter.new(source_file)
  source_file_formatter.format
end

def formatted_result

def formatted_result
  @formatted_result ||= {
    meta: {
      simplecov_version: SimpleCov::VERSION
    },
    coverage: {},
    groups: {}
  }
end

def initialize(result)

def initialize(result)
  @result = result
end