Class: ClassMetrix::Formatters::Shared::TableBuilder
- Inherits:
-
Object
- Object
- ClassMetrix::Formatters::Shared::TableBuilder
- Defined in:
- lib/class_metrix/formatters/shared/table_builder.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#expand_hashes ⇒ Object
readonly
Returns the value of attribute expand_hashes.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #build_expanded_table ⇒ Object
- #build_flattened_table ⇒ Object
- #build_simple_table ⇒ Object
-
#initialize(data, expand_hashes = false, options = {}) ⇒ TableBuilder
constructor
A new instance of TableBuilder.
Constructor Details
#initialize(data, expand_hashes = false, options = {}) ⇒ TableBuilder
Returns a new instance of TableBuilder.
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 12 def initialize(data, = false, = {}) @data = data @expand_hashes = @options = @value_processor = ValueProcessor @debug_mode = .fetch(:debug_mode, false) @debug_level = .fetch(:debug_level, :basic) @logger = Utils::DebugLogger.new("TableBuilder", @debug_mode, @debug_level) @logger.log("TableBuilder initialized with expand_hashes: #{}") @logger.log("Data headers: #{@data[:headers]}", :detailed) @logger.log("Number of rows: #{@data[:rows]&.length || 0}") end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
10 11 12 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 10 def data @data end |
#expand_hashes ⇒ Object (readonly)
Returns the value of attribute expand_hashes.
10 11 12 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 10 def @expand_hashes end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
10 11 12 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 10 def @options end |
Instance Method Details
#build_expanded_table ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 33 def return build_simple_table unless @expand_hashes @logger.log("Building expanded table with hash expansion") headers = @data[:headers] rows = process_rows_for_expansion(headers) { headers: headers, rows: rows } end |
#build_flattened_table ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 46 def build_flattened_table return build_simple_table unless @expand_hashes @logger.log("Building flattened table with hash expansion") headers = @data[:headers] all_hash_keys = collect_all_hash_keys(@data[:rows], headers) @logger.log("Collected hash keys: #{all_hash_keys}") flattened_headers = create_flattened_headers(headers, all_hash_keys) flattened_rows = create_flattened_rows(@data[:rows], headers, all_hash_keys) { headers: flattened_headers, rows: flattened_rows } end |
#build_simple_table ⇒ Object
26 27 28 29 30 31 |
# File 'lib/class_metrix/formatters/shared/table_builder.rb', line 26 def build_simple_table { headers: @data[:headers], rows: @data[:rows].map { |row| process_row(row) } } end |