activerecord-summarize 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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