lib/tablesmith/hash_rows_base.rb in tablesmith-0.4.1 vs lib/tablesmith/hash_rows_base.rb in tablesmith-0.5.0
- old
+ new
@@ -1,15 +1,18 @@
+# frozen_string_literal: true
+
# ActiveRecord and HashRowsSource share a lot, but not everything.
module Tablesmith::HashRowsBase
# not all resulting rows will have data in all columns, so make sure all rows pad out missing columns
def normalize_keys(rows)
all_keys = rows.map(&:keys).flatten.uniq
rows.map { |hash_row| all_keys.each { |key| hash_row[key] ||= '' } }
end
def sort_columns(rows)
return if column_order.empty?
+
rows.map! do |row|
# this sort gives preference to column_order then falls back to alphabetic for leftovers.
# this is handy when columns auto-generate based on hash data.
row.sort do |a, b|
a_col_name, b_col_name = [a.first, b.first]
@@ -30,6 +33,6 @@
def create_headers(rows)
column_names = rows.first.map(&:first)
grouped_headers(column_names) + [apply_column_aliases(column_names), :separator]
end
-end
\ No newline at end of file
+end