Class: LibyearRb::JsonFormatter

Inherits:
Formatter show all
Defined in:
lib/libyear_rb/formatters/json_formatter.rb

Constant Summary

Constants inherited from Formatter

Formatter::NAMES

Instance Method Summary collapse

Methods inherited from Formatter

for, #initialize

Constructor Details

This class inherits a constructor from LibyearRb::Formatter

Instance Method Details

#generate(results) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/libyear_rb/formatters/json_formatter.rb', line 7

def generate(results)
  total_days = results.sum { |r| r.libyear_in_days || 0 }
  total_versions = results.sum { |r| r.version_distance || 0 }

  visible_results = @indirect ? results : results.select(&:is_direct)

  payload = {
    gems: visible_results.map { |result| gem_hash(result) },
    summary: {
      libyears_behind: (total_days / 365.0).round(2),
      total_releases_behind: total_versions
    }
  }

  @io.puts JSON.pretty_generate(payload)
end