activerecord-summarize 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bd10ad02402bdba82cf06beb2d45b91002a2f94eb74322d86f4457360fa46ba
4
- data.tar.gz: 7d1f8d4cec9fd857d1551a527af7dbab701900ee2530490581b4d29ee6ef1e2f
3
+ metadata.gz: 86517402b9294b544b4d452e8198a49e23148141bf1614cdedff938970a32213
4
+ data.tar.gz: d87578a41a70e44cce3efea3114a1e465ecf2428af4f2aa8be86556fff55a655
5
5
  SHA512:
6
- metadata.gz: 3a39f8e9b7ff2ffb0bd142ca9c11ac810ef7f2d55c5a1a79d147f8c78eafc14e83a3f4215b6c0d37ae8cffe7e789de6e39ce8680dbf3449c6244b7292554a46a
7
- data.tar.gz: b74a44bd31888fd681bb4e5d0fd6b605b935b794dc39334e18f3a533850097b74410d567b522f05ce38a841336891a35e87f68c849a524cbd8e4e42785e9746e
6
+ metadata.gz: fd7587584640872da28f5cf78d16f547f6965d9227f665a65658a1ecf5349ad1cb9bb06ddcba57e777acda9d03133f5f83a9bf0095b0e24c853428d98db28ed0
7
+ data.tar.gz: 42f7a3c1f745f41edb882d681c85ea02c3672739a4edff781b6af0756c99ff0923348b89438969392a2b659ab3bf4613acc9454c5817ef278db0684918de3521
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-summarize (0.2.2)
4
+ activerecord-summarize (0.2.3)
5
5
  activerecord (>= 5.0)
6
6
 
7
7
  GEM
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecord
4
4
  module Summarize
5
- VERSION = "0.2.2"
5
+ VERSION = "0.2.3"
6
6
  end
7
7
  end
@@ -127,6 +127,10 @@ module ActiveRecord::Summarize
127
127
  # grouped_query = groups.any? ? from_where.group(*groups) : from_where
128
128
  grouped_query = groups.any? ? from_where.group(*1..groups.size) : from_where
129
129
  data = grouped_query.pluck(*groups, *value_selects)
130
+ # .pluck(:one_column) returns an array of values instead of an array of arrays,
131
+ # which breaks the aggregation and assignment below in case anyone ever asks
132
+ # `summarize` for only one thing.
133
+ data = data.map { |d| [d] } if (groups.size + value_selects.size) == 1
130
134
 
131
135
  # Aggregate & assign results
132
136
  group_idx = groups.each_with_index.to_h
@@ -136,7 +140,7 @@ module ActiveRecord::Summarize
136
140
  case group_columns.size
137
141
  when 0 then [
138
142
  0,
139
- ->(memo, row) { memo + row[value_column] }
143
+ ->(memo, row) { memo + (row[value_column] || 0) }
140
144
  ]
141
145
  when 1 then [
142
146
  Hash.new(0), # Default 0 makes the reducer much cleaner, but we have to clean it up later
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-summarize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Paine
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-29 00:00:00.000000000 Z
11
+ date: 2022-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord