Class: Factbase::Flatten

Inherits:
Object
  • Object
show all
Defined in:
lib/factbase/flatten.rb

Overview

Make maps suitable for printing.

Author

Yegor Bugayenko ([email protected])

Copyright

Copyright © 2024-2025 Yegor Bugayenko

License

MIT

Instance Method Summary collapse

Constructor Details

#initialize(maps, sorter = '_id') ⇒ Flatten

Constructor.



15
16
17
18
# File 'lib/factbase/flatten.rb', line 15

def initialize(maps, sorter = '_id')
  @maps = maps
  @sorter = sorter
end

Instance Method Details

#itArray<HashMap>

Improve the maps.

Returns:

  • (Array<HashMap>)

    The hashmaps, but improved



22
23
24
25
26
27
# File 'lib/factbase/flatten.rb', line 22

def it
  @maps
    .sort_by { |m| m[@sorter] || [] }
    .map { |m| m.sort.to_h }
    .map { |m| m.transform_values { |v| v.size == 1 ? v[0] : v } }
end