Class: ClassMetrix::CsvFormatter

Inherits:
Formatters::Base::BaseFormatter show all
Defined in:
lib/class_metrix/formatters/csv_formatter.rb

Instance Attribute Summary

Attributes inherited from Formatters::Base::BaseFormatter

#data, #expand_hashes, #options

Instance Method Summary collapse

Constructor Details

#initialize(data, expand_hashes = false, options = {}) ⇒ CsvFormatter

Returns a new instance of CsvFormatter.



10
11
12
13
# File 'lib/class_metrix/formatters/csv_formatter.rb', line 10

def initialize(data, expand_hashes = false, options = {})
  super
  @table_builder = Formatters::Shared::CsvTableBuilder.new(data, expand_hashes, @options)
end

Instance Method Details

#formatObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/class_metrix/formatters/csv_formatter.rb', line 15

def format
  return "" if @data[:headers].empty? || @data[:rows].empty?

  output_lines = [] # : Array[String]

  # Add CSV header comments
  if @options.fetch(:show_metadata, true)
    header_component = Formatters::Components::GenericHeaderComponent.new(@data, @options.merge(format: :csv))
    header_lines = header_component.generate
    output_lines.concat(header_lines)
  end

  # Generate table data based on hash handling mode
  table_data = determine_table_data

  # Convert to CSV format
  csv_output = render_csv_table(table_data)
  output_lines.concat(csv_output)

  output_lines.join("\n")
end