Class: Ace::Support::Items::Atoms::ItemStatistics

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/support/items/atoms/item_statistics.rb

Overview

Pure counting logic for item collections. Groups items by a field and computes completion rates.

Class Method Summary collapse

Class Method Details

.count_by(items, field) ⇒ Hash

Returns { total:, by_field: { “value” => count } }.

Parameters:

  • items (Array)

    Items responding to a field method

  • field (Symbol)

    Field to group by (e.g., :status, :priority, :type)

Returns:

  • (Hash)

    { total:, by_field: { “value” => count } }



13
14
15
16
17
18
19
20
21
# File 'lib/ace/support/items/atoms/item_statistics.rb', line 13

def self.count_by(items, field)
  result = {total: items.size, by_field: {}}
  items.each do |item|
    value = item.public_send(field).to_s
    result[:by_field][value] ||= 0
    result[:by_field][value] += 1
  end
  result
end