Class: ClassMetrix::CsvFormatter
- Inherits:
-
Formatters::Base::BaseFormatter
- Object
- Formatters::Base::BaseFormatter
- ClassMetrix::CsvFormatter
- 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
- #format ⇒ Object
-
#initialize(data, expand_hashes = false, options = {}) ⇒ CsvFormatter
constructor
A new instance of CsvFormatter.
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, = false, = {}) super @table_builder = Formatters::Shared::CsvTableBuilder.new(data, , @options) end |
Instance Method Details
#format ⇒ Object
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 |