pg_aggregates 0.1.0 → 0.2.1

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: d75685b8a6abb03dda216865bad3cbffc419d6d472b06695b98a5c92a5e05df0
4
- data.tar.gz: 8445256690fb9a3bba119b749e1bb8d356f5024472527413402a05312a9c935e
3
+ metadata.gz: '06275937982acc8e3dd0948ce60f2df0b5562a5b2eed7f4664a4cdf7b93c1b07'
4
+ data.tar.gz: 949c40f5df0902184a5a59803535a6c0298668c458391b19e7f22126e05b90bb
5
5
  SHA512:
6
- metadata.gz: 67babad257045327620a6b6d99c3bba1abc0821c9490ee00fb744aae15b843c63b27294f71be65c3b00efb52e231ecf63e4ca88db8c18d3125e5eaf1d70c243c
7
- data.tar.gz: cf6465126ee2fbeeea0e5504463b4d0520ac9690917948b2bead65a10accffbc292a4e44fa3369535bb2f01bbd51023085c6115f4ba8e50c9b390aaa6ad9e231
6
+ metadata.gz: a16c309216950f5357a906c823628f63a94d25c6b1434953fd9cfe05e07197c741c934d4650024481138966cf38a9f4c91926ac59c57eac536fe601e782a3ebb
7
+ data.tar.gz: 46c768fe57e3ec3cf2fe5904231100b1f17ed0f3304aee35109c46f4a92d050b9143f4bb47c02c535d607036707d7b8368f3a99c4497a8a55b40fdbf4eb3eea9
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.3.5
data/Appraisals ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise "rails-6.1" do
4
+ gem "activerecord", "~> 6.1.0"
5
+ gem "railties", "~> 6.1.0"
6
+ end
7
+
8
+ appraise "rails-7.0" do
9
+ gem "activerecord", "~> 7.0.0"
10
+ gem "railties", "~> 7.0.0"
11
+ end
12
+
13
+ appraise "rails-7.1" do
14
+ gem "activerecord", "~> 7.1.0"
15
+ gem "railties", "~> 7.1.0"
16
+ end
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "ammeter"
6
+ gem "appraisal"
7
+ gem "base64"
8
+ gem "bigdecimal"
9
+ gem "database_cleaner"
10
+ gem "drb"
11
+ gem "gem-release"
12
+ gem "logger"
13
+ gem "mutex_m"
14
+ gem "rake"
15
+ gem "rspec"
16
+ gem "rubocop-mhenrixon"
17
+ gem "rubocop-rake"
18
+ gem "rubocop-rspec"
19
+ gem "activerecord", "~> 6.1.0"
20
+ gem "railties", "~> 6.1.0"
21
+
22
+ gemspec path: "../"
@@ -0,0 +1,176 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ pg_aggregates (0.1.1)
5
+ activerecord (>= 6.1)
6
+ pg (>= 1.1)
7
+ railties (>= 6.1)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionpack (6.1.7.10)
13
+ actionview (= 6.1.7.10)
14
+ activesupport (= 6.1.7.10)
15
+ rack (~> 2.0, >= 2.0.9)
16
+ rack-test (>= 0.6.3)
17
+ rails-dom-testing (~> 2.0)
18
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
19
+ actionview (6.1.7.10)
20
+ activesupport (= 6.1.7.10)
21
+ builder (~> 3.1)
22
+ erubi (~> 1.4)
23
+ rails-dom-testing (~> 2.0)
24
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
25
+ activemodel (6.1.7.10)
26
+ activesupport (= 6.1.7.10)
27
+ activerecord (6.1.7.10)
28
+ activemodel (= 6.1.7.10)
29
+ activesupport (= 6.1.7.10)
30
+ activesupport (6.1.7.10)
31
+ concurrent-ruby (~> 1.0, >= 1.0.2)
32
+ i18n (>= 1.6, < 2)
33
+ minitest (>= 5.1)
34
+ tzinfo (~> 2.0)
35
+ zeitwerk (~> 2.3)
36
+ ammeter (1.1.7)
37
+ activesupport (>= 3.0)
38
+ railties (>= 3.0)
39
+ rspec-rails (>= 2.2)
40
+ appraisal (2.5.0)
41
+ bundler
42
+ rake
43
+ thor (>= 0.14.0)
44
+ ast (2.4.2)
45
+ base64 (0.2.0)
46
+ bigdecimal (3.1.8)
47
+ builder (3.3.0)
48
+ concurrent-ruby (1.3.4)
49
+ crass (1.0.6)
50
+ database_cleaner (2.1.0)
51
+ database_cleaner-active_record (>= 2, < 3)
52
+ database_cleaner-active_record (2.2.0)
53
+ activerecord (>= 5.a)
54
+ database_cleaner-core (~> 2.0.0)
55
+ database_cleaner-core (2.0.1)
56
+ diff-lcs (1.5.1)
57
+ drb (2.2.1)
58
+ erubi (1.13.0)
59
+ gem-release (2.2.2)
60
+ i18n (1.14.6)
61
+ concurrent-ruby (~> 1.0)
62
+ json (2.7.6)
63
+ language_server-protocol (3.17.0.3)
64
+ logger (1.6.1)
65
+ loofah (2.23.1)
66
+ crass (~> 1.0.2)
67
+ nokogiri (>= 1.12.0)
68
+ method_source (1.1.0)
69
+ minitest (5.25.1)
70
+ mutex_m (0.2.0)
71
+ nokogiri (1.16.7-arm64-darwin)
72
+ racc (~> 1.4)
73
+ parallel (1.26.3)
74
+ parser (3.3.5.1)
75
+ ast (~> 2.4.1)
76
+ racc
77
+ pg (1.5.9)
78
+ racc (1.8.1)
79
+ rack (2.2.10)
80
+ rack-test (2.1.0)
81
+ rack (>= 1.3)
82
+ rails-dom-testing (2.2.0)
83
+ activesupport (>= 5.0.0)
84
+ minitest
85
+ nokogiri (>= 1.6)
86
+ rails-html-sanitizer (1.6.0)
87
+ loofah (~> 2.21)
88
+ nokogiri (~> 1.14)
89
+ railties (6.1.7.10)
90
+ actionpack (= 6.1.7.10)
91
+ activesupport (= 6.1.7.10)
92
+ method_source
93
+ rake (>= 12.2)
94
+ thor (~> 1.0)
95
+ rainbow (3.1.1)
96
+ rake (13.2.1)
97
+ regexp_parser (2.9.2)
98
+ rspec (3.13.0)
99
+ rspec-core (~> 3.13.0)
100
+ rspec-expectations (~> 3.13.0)
101
+ rspec-mocks (~> 3.13.0)
102
+ rspec-core (3.13.2)
103
+ rspec-support (~> 3.13.0)
104
+ rspec-expectations (3.13.3)
105
+ diff-lcs (>= 1.2.0, < 2.0)
106
+ rspec-support (~> 3.13.0)
107
+ rspec-mocks (3.13.2)
108
+ diff-lcs (>= 1.2.0, < 2.0)
109
+ rspec-support (~> 3.13.0)
110
+ rspec-rails (6.1.5)
111
+ actionpack (>= 6.1)
112
+ activesupport (>= 6.1)
113
+ railties (>= 6.1)
114
+ rspec-core (~> 3.13)
115
+ rspec-expectations (~> 3.13)
116
+ rspec-mocks (~> 3.13)
117
+ rspec-support (~> 3.13)
118
+ rspec-support (3.13.1)
119
+ rubocop (1.68.0)
120
+ json (~> 2.3)
121
+ language_server-protocol (>= 3.17.0)
122
+ parallel (~> 1.10)
123
+ parser (>= 3.3.0.2)
124
+ rainbow (>= 2.2.2, < 4.0)
125
+ regexp_parser (>= 2.4, < 3.0)
126
+ rubocop-ast (>= 1.32.2, < 2.0)
127
+ ruby-progressbar (~> 1.7)
128
+ unicode-display_width (>= 2.4.0, < 3.0)
129
+ rubocop-ast (1.34.0)
130
+ parser (>= 3.3.1.0)
131
+ rubocop-mhenrixon (3.0.0)
132
+ rubocop
133
+ rubocop-performance
134
+ rubocop-rake
135
+ rubocop-rspec
136
+ rubocop-thread_safety
137
+ rubocop-performance (1.22.1)
138
+ rubocop (>= 1.48.1, < 2.0)
139
+ rubocop-ast (>= 1.31.1, < 2.0)
140
+ rubocop-rake (0.6.0)
141
+ rubocop (~> 1.0)
142
+ rubocop-rspec (3.2.0)
143
+ rubocop (~> 1.61)
144
+ rubocop-thread_safety (0.5.1)
145
+ rubocop (>= 0.90.0)
146
+ ruby-progressbar (1.13.0)
147
+ thor (1.3.2)
148
+ tzinfo (2.0.6)
149
+ concurrent-ruby (~> 1.0)
150
+ unicode-display_width (2.6.0)
151
+ zeitwerk (2.6.18)
152
+
153
+ PLATFORMS
154
+ arm64-darwin
155
+
156
+ DEPENDENCIES
157
+ activerecord (~> 6.1.0)
158
+ ammeter
159
+ appraisal
160
+ base64
161
+ bigdecimal
162
+ database_cleaner
163
+ drb
164
+ gem-release
165
+ logger
166
+ mutex_m
167
+ pg_aggregates!
168
+ railties (~> 6.1.0)
169
+ rake
170
+ rspec
171
+ rubocop-mhenrixon
172
+ rubocop-rake
173
+ rubocop-rspec
174
+
175
+ BUNDLED WITH
176
+ 2.5.20
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "ammeter"
6
+ gem "appraisal"
7
+ gem "base64"
8
+ gem "bigdecimal"
9
+ gem "database_cleaner"
10
+ gem "drb"
11
+ gem "gem-release"
12
+ gem "logger"
13
+ gem "mutex_m"
14
+ gem "rake"
15
+ gem "rspec"
16
+ gem "rubocop-mhenrixon"
17
+ gem "rubocop-rake"
18
+ gem "rubocop-rspec"
19
+ gem "activerecord", "~> 7.0.0"
20
+ gem "railties", "~> 7.0.0"
21
+
22
+ gemspec path: "../"
@@ -0,0 +1,191 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ pg_aggregates (0.1.1)
5
+ activerecord (>= 6.1)
6
+ pg (>= 1.1)
7
+ railties (>= 6.1)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionpack (7.0.8.6)
13
+ actionview (= 7.0.8.6)
14
+ activesupport (= 7.0.8.6)
15
+ rack (~> 2.0, >= 2.2.4)
16
+ rack-test (>= 0.6.3)
17
+ rails-dom-testing (~> 2.0)
18
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
19
+ actionview (7.0.8.6)
20
+ activesupport (= 7.0.8.6)
21
+ builder (~> 3.1)
22
+ erubi (~> 1.4)
23
+ rails-dom-testing (~> 2.0)
24
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
25
+ activemodel (7.0.8.6)
26
+ activesupport (= 7.0.8.6)
27
+ activerecord (7.0.8.6)
28
+ activemodel (= 7.0.8.6)
29
+ activesupport (= 7.0.8.6)
30
+ activesupport (7.0.8.6)
31
+ concurrent-ruby (~> 1.0, >= 1.0.2)
32
+ i18n (>= 1.6, < 2)
33
+ minitest (>= 5.1)
34
+ tzinfo (~> 2.0)
35
+ ammeter (1.1.7)
36
+ activesupport (>= 3.0)
37
+ railties (>= 3.0)
38
+ rspec-rails (>= 2.2)
39
+ appraisal (2.5.0)
40
+ bundler
41
+ rake
42
+ thor (>= 0.14.0)
43
+ ast (2.4.2)
44
+ base64 (0.2.0)
45
+ bigdecimal (3.1.8)
46
+ builder (3.3.0)
47
+ concurrent-ruby (1.3.4)
48
+ crass (1.0.6)
49
+ database_cleaner (2.1.0)
50
+ database_cleaner-active_record (>= 2, < 3)
51
+ database_cleaner-active_record (2.2.0)
52
+ activerecord (>= 5.a)
53
+ database_cleaner-core (~> 2.0.0)
54
+ database_cleaner-core (2.0.1)
55
+ diff-lcs (1.5.1)
56
+ drb (2.2.1)
57
+ erubi (1.13.0)
58
+ gem-release (2.2.2)
59
+ i18n (1.14.6)
60
+ concurrent-ruby (~> 1.0)
61
+ json (2.7.6)
62
+ language_server-protocol (3.17.0.3)
63
+ logger (1.6.1)
64
+ loofah (2.23.1)
65
+ crass (~> 1.0.2)
66
+ nokogiri (>= 1.12.0)
67
+ method_source (1.1.0)
68
+ minitest (5.25.1)
69
+ mutex_m (0.2.0)
70
+ nokogiri (1.16.7-aarch64-linux)
71
+ racc (~> 1.4)
72
+ nokogiri (1.16.7-arm-linux)
73
+ racc (~> 1.4)
74
+ nokogiri (1.16.7-arm64-darwin)
75
+ racc (~> 1.4)
76
+ nokogiri (1.16.7-x86-linux)
77
+ racc (~> 1.4)
78
+ nokogiri (1.16.7-x86_64-darwin)
79
+ racc (~> 1.4)
80
+ nokogiri (1.16.7-x86_64-linux)
81
+ racc (~> 1.4)
82
+ parallel (1.26.3)
83
+ parser (3.3.5.1)
84
+ ast (~> 2.4.1)
85
+ racc
86
+ pg (1.5.9)
87
+ racc (1.8.1)
88
+ rack (2.2.10)
89
+ rack-test (2.1.0)
90
+ rack (>= 1.3)
91
+ rails-dom-testing (2.2.0)
92
+ activesupport (>= 5.0.0)
93
+ minitest
94
+ nokogiri (>= 1.6)
95
+ rails-html-sanitizer (1.6.0)
96
+ loofah (~> 2.21)
97
+ nokogiri (~> 1.14)
98
+ railties (7.0.8.6)
99
+ actionpack (= 7.0.8.6)
100
+ activesupport (= 7.0.8.6)
101
+ method_source
102
+ rake (>= 12.2)
103
+ thor (~> 1.0)
104
+ zeitwerk (~> 2.5)
105
+ rainbow (3.1.1)
106
+ rake (13.2.1)
107
+ regexp_parser (2.9.2)
108
+ rspec (3.13.0)
109
+ rspec-core (~> 3.13.0)
110
+ rspec-expectations (~> 3.13.0)
111
+ rspec-mocks (~> 3.13.0)
112
+ rspec-core (3.13.2)
113
+ rspec-support (~> 3.13.0)
114
+ rspec-expectations (3.13.3)
115
+ diff-lcs (>= 1.2.0, < 2.0)
116
+ rspec-support (~> 3.13.0)
117
+ rspec-mocks (3.13.2)
118
+ diff-lcs (>= 1.2.0, < 2.0)
119
+ rspec-support (~> 3.13.0)
120
+ rspec-rails (7.0.1)
121
+ actionpack (>= 7.0)
122
+ activesupport (>= 7.0)
123
+ railties (>= 7.0)
124
+ rspec-core (~> 3.13)
125
+ rspec-expectations (~> 3.13)
126
+ rspec-mocks (~> 3.13)
127
+ rspec-support (~> 3.13)
128
+ rspec-support (3.13.1)
129
+ rubocop (1.68.0)
130
+ json (~> 2.3)
131
+ language_server-protocol (>= 3.17.0)
132
+ parallel (~> 1.10)
133
+ parser (>= 3.3.0.2)
134
+ rainbow (>= 2.2.2, < 4.0)
135
+ regexp_parser (>= 2.4, < 3.0)
136
+ rubocop-ast (>= 1.32.2, < 2.0)
137
+ ruby-progressbar (~> 1.7)
138
+ unicode-display_width (>= 2.4.0, < 3.0)
139
+ rubocop-ast (1.34.0)
140
+ parser (>= 3.3.1.0)
141
+ rubocop-mhenrixon (3.0.0)
142
+ rubocop
143
+ rubocop-performance
144
+ rubocop-rake
145
+ rubocop-rspec
146
+ rubocop-thread_safety
147
+ rubocop-performance (1.22.1)
148
+ rubocop (>= 1.48.1, < 2.0)
149
+ rubocop-ast (>= 1.31.1, < 2.0)
150
+ rubocop-rake (0.6.0)
151
+ rubocop (~> 1.0)
152
+ rubocop-rspec (3.2.0)
153
+ rubocop (~> 1.61)
154
+ rubocop-thread_safety (0.5.1)
155
+ rubocop (>= 0.90.0)
156
+ ruby-progressbar (1.13.0)
157
+ thor (1.3.2)
158
+ tzinfo (2.0.6)
159
+ concurrent-ruby (~> 1.0)
160
+ unicode-display_width (2.6.0)
161
+ zeitwerk (2.6.18)
162
+
163
+ PLATFORMS
164
+ aarch64-linux
165
+ arm-linux
166
+ arm64-darwin
167
+ x86-linux
168
+ x86_64-darwin
169
+ x86_64-linux
170
+
171
+ DEPENDENCIES
172
+ activerecord (~> 7.0.0)
173
+ ammeter
174
+ appraisal
175
+ base64
176
+ bigdecimal
177
+ database_cleaner
178
+ drb
179
+ gem-release
180
+ logger
181
+ mutex_m
182
+ pg_aggregates!
183
+ railties (~> 7.0.0)
184
+ rake
185
+ rspec
186
+ rubocop-mhenrixon
187
+ rubocop-rake
188
+ rubocop-rspec
189
+
190
+ BUNDLED WITH
191
+ 2.5.20
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "ammeter"
6
+ gem "appraisal"
7
+ gem "base64"
8
+ gem "bigdecimal"
9
+ gem "database_cleaner"
10
+ gem "drb"
11
+ gem "gem-release"
12
+ gem "logger"
13
+ gem "mutex_m"
14
+ gem "rake"
15
+ gem "rspec"
16
+ gem "rubocop-mhenrixon"
17
+ gem "rubocop-rake"
18
+ gem "rubocop-rspec"
19
+ gem "activerecord", "~> 7.1.0"
20
+ gem "railties", "~> 7.1.0"
21
+
22
+ gemspec path: "../"
@@ -0,0 +1,222 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ pg_aggregates (0.1.1)
5
+ activerecord (>= 6.1)
6
+ pg (>= 1.1)
7
+ railties (>= 6.1)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionpack (7.1.5)
13
+ actionview (= 7.1.5)
14
+ activesupport (= 7.1.5)
15
+ nokogiri (>= 1.8.5)
16
+ racc
17
+ rack (>= 2.2.4)
18
+ rack-session (>= 1.0.1)
19
+ rack-test (>= 0.6.3)
20
+ rails-dom-testing (~> 2.2)
21
+ rails-html-sanitizer (~> 1.6)
22
+ actionview (7.1.5)
23
+ activesupport (= 7.1.5)
24
+ builder (~> 3.1)
25
+ erubi (~> 1.11)
26
+ rails-dom-testing (~> 2.2)
27
+ rails-html-sanitizer (~> 1.6)
28
+ activemodel (7.1.5)
29
+ activesupport (= 7.1.5)
30
+ activerecord (7.1.5)
31
+ activemodel (= 7.1.5)
32
+ activesupport (= 7.1.5)
33
+ timeout (>= 0.4.0)
34
+ activesupport (7.1.5)
35
+ base64
36
+ benchmark (>= 0.3)
37
+ bigdecimal
38
+ concurrent-ruby (~> 1.0, >= 1.0.2)
39
+ connection_pool (>= 2.2.5)
40
+ drb
41
+ i18n (>= 1.6, < 2)
42
+ logger (>= 1.4.2)
43
+ minitest (>= 5.1)
44
+ mutex_m
45
+ securerandom (>= 0.3)
46
+ tzinfo (~> 2.0)
47
+ ammeter (1.1.7)
48
+ activesupport (>= 3.0)
49
+ railties (>= 3.0)
50
+ rspec-rails (>= 2.2)
51
+ appraisal (2.5.0)
52
+ bundler
53
+ rake
54
+ thor (>= 0.14.0)
55
+ ast (2.4.2)
56
+ base64 (0.2.0)
57
+ benchmark (0.3.0)
58
+ bigdecimal (3.1.8)
59
+ builder (3.3.0)
60
+ concurrent-ruby (1.3.4)
61
+ connection_pool (2.4.1)
62
+ crass (1.0.6)
63
+ database_cleaner (2.1.0)
64
+ database_cleaner-active_record (>= 2, < 3)
65
+ database_cleaner-active_record (2.2.0)
66
+ activerecord (>= 5.a)
67
+ database_cleaner-core (~> 2.0.0)
68
+ database_cleaner-core (2.0.1)
69
+ diff-lcs (1.5.1)
70
+ drb (2.2.1)
71
+ erubi (1.13.0)
72
+ gem-release (2.2.2)
73
+ i18n (1.14.6)
74
+ concurrent-ruby (~> 1.0)
75
+ io-console (0.7.2)
76
+ irb (1.14.1)
77
+ rdoc (>= 4.0.0)
78
+ reline (>= 0.4.2)
79
+ json (2.7.6)
80
+ language_server-protocol (3.17.0.3)
81
+ logger (1.6.1)
82
+ loofah (2.23.1)
83
+ crass (~> 1.0.2)
84
+ nokogiri (>= 1.12.0)
85
+ minitest (5.25.1)
86
+ mutex_m (0.2.0)
87
+ nokogiri (1.16.7-aarch64-linux)
88
+ racc (~> 1.4)
89
+ nokogiri (1.16.7-arm-linux)
90
+ racc (~> 1.4)
91
+ nokogiri (1.16.7-arm64-darwin)
92
+ racc (~> 1.4)
93
+ nokogiri (1.16.7-x86-linux)
94
+ racc (~> 1.4)
95
+ nokogiri (1.16.7-x86_64-darwin)
96
+ racc (~> 1.4)
97
+ nokogiri (1.16.7-x86_64-linux)
98
+ racc (~> 1.4)
99
+ parallel (1.26.3)
100
+ parser (3.3.5.1)
101
+ ast (~> 2.4.1)
102
+ racc
103
+ pg (1.5.9)
104
+ psych (5.1.2)
105
+ stringio
106
+ racc (1.8.1)
107
+ rack (3.1.8)
108
+ rack-session (2.0.0)
109
+ rack (>= 3.0.0)
110
+ rack-test (2.1.0)
111
+ rack (>= 1.3)
112
+ rackup (2.2.0)
113
+ rack (>= 3)
114
+ rails-dom-testing (2.2.0)
115
+ activesupport (>= 5.0.0)
116
+ minitest
117
+ nokogiri (>= 1.6)
118
+ rails-html-sanitizer (1.6.0)
119
+ loofah (~> 2.21)
120
+ nokogiri (~> 1.14)
121
+ railties (7.1.5)
122
+ actionpack (= 7.1.5)
123
+ activesupport (= 7.1.5)
124
+ irb
125
+ rackup (>= 1.0.0)
126
+ rake (>= 12.2)
127
+ thor (~> 1.0, >= 1.2.2)
128
+ zeitwerk (~> 2.6)
129
+ rainbow (3.1.1)
130
+ rake (13.2.1)
131
+ rdoc (6.7.0)
132
+ psych (>= 4.0.0)
133
+ regexp_parser (2.9.2)
134
+ reline (0.5.10)
135
+ io-console (~> 0.5)
136
+ rspec (3.13.0)
137
+ rspec-core (~> 3.13.0)
138
+ rspec-expectations (~> 3.13.0)
139
+ rspec-mocks (~> 3.13.0)
140
+ rspec-core (3.13.2)
141
+ rspec-support (~> 3.13.0)
142
+ rspec-expectations (3.13.3)
143
+ diff-lcs (>= 1.2.0, < 2.0)
144
+ rspec-support (~> 3.13.0)
145
+ rspec-mocks (3.13.2)
146
+ diff-lcs (>= 1.2.0, < 2.0)
147
+ rspec-support (~> 3.13.0)
148
+ rspec-rails (7.0.1)
149
+ actionpack (>= 7.0)
150
+ activesupport (>= 7.0)
151
+ railties (>= 7.0)
152
+ rspec-core (~> 3.13)
153
+ rspec-expectations (~> 3.13)
154
+ rspec-mocks (~> 3.13)
155
+ rspec-support (~> 3.13)
156
+ rspec-support (3.13.1)
157
+ rubocop (1.68.0)
158
+ json (~> 2.3)
159
+ language_server-protocol (>= 3.17.0)
160
+ parallel (~> 1.10)
161
+ parser (>= 3.3.0.2)
162
+ rainbow (>= 2.2.2, < 4.0)
163
+ regexp_parser (>= 2.4, < 3.0)
164
+ rubocop-ast (>= 1.32.2, < 2.0)
165
+ ruby-progressbar (~> 1.7)
166
+ unicode-display_width (>= 2.4.0, < 3.0)
167
+ rubocop-ast (1.34.0)
168
+ parser (>= 3.3.1.0)
169
+ rubocop-mhenrixon (3.0.0)
170
+ rubocop
171
+ rubocop-performance
172
+ rubocop-rake
173
+ rubocop-rspec
174
+ rubocop-thread_safety
175
+ rubocop-performance (1.22.1)
176
+ rubocop (>= 1.48.1, < 2.0)
177
+ rubocop-ast (>= 1.31.1, < 2.0)
178
+ rubocop-rake (0.6.0)
179
+ rubocop (~> 1.0)
180
+ rubocop-rspec (3.2.0)
181
+ rubocop (~> 1.61)
182
+ rubocop-thread_safety (0.5.1)
183
+ rubocop (>= 0.90.0)
184
+ ruby-progressbar (1.13.0)
185
+ securerandom (0.3.1)
186
+ stringio (3.1.1)
187
+ thor (1.3.2)
188
+ timeout (0.4.1)
189
+ tzinfo (2.0.6)
190
+ concurrent-ruby (~> 1.0)
191
+ unicode-display_width (2.6.0)
192
+ zeitwerk (2.6.18)
193
+
194
+ PLATFORMS
195
+ aarch64-linux
196
+ arm-linux
197
+ arm64-darwin
198
+ x86-linux
199
+ x86_64-darwin
200
+ x86_64-linux
201
+
202
+ DEPENDENCIES
203
+ activerecord (~> 7.1.0)
204
+ ammeter
205
+ appraisal
206
+ base64
207
+ bigdecimal
208
+ database_cleaner
209
+ drb
210
+ gem-release
211
+ logger
212
+ mutex_m
213
+ pg_aggregates!
214
+ railties (~> 7.1.0)
215
+ rake
216
+ rspec
217
+ rubocop-mhenrixon
218
+ rubocop-rake
219
+ rubocop-rspec
220
+
221
+ BUNDLED WITH
222
+ 2.5.20
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails/generators"
2
4
  require "rails/generators/active_record"
3
5
 
@@ -5,29 +7,29 @@ module Pg
5
7
  module Generators
6
8
  class AggregateGenerator < Rails::Generators::NamedBase
7
9
  include Rails::Generators::Migration
8
-
10
+
9
11
  source_root File.expand_path("templates", __dir__)
10
-
12
+
11
13
  class_option :version,
12
- type: :string,
13
- default: "1",
14
- desc: "Specify a version for the aggregate"
14
+ type: :string,
15
+ default: "1",
16
+ desc: "Specify a version for the aggregate"
15
17
 
16
18
  def create_aggregate_file
17
19
  @version = options[:version]
18
20
  @aggregate_name = file_name
19
-
21
+
20
22
  template(
21
23
  "aggregate.sql.erb",
22
24
  "db/aggregates/#{file_name}_v#{@version}.sql"
23
25
  )
24
26
  end
25
-
27
+
26
28
  def create_migration_file
27
29
  @version = options[:version]
28
30
  @aggregate_name = file_name
29
31
  @migration_version = migration_version
30
-
32
+
31
33
  migration_template(
32
34
  "migration.rb.erb",
33
35
  "db/migrate/create_aggregate_#{file_name}.rb"
@@ -45,4 +47,4 @@ module Pg
45
47
  end
46
48
  end
47
49
  end
48
- end
50
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  class AggregateDefinition
3
5
  attr_reader :name, :version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  module CommandRecorder
3
5
  def create_aggregate(*args, &block)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  class FileVersion
3
5
  attr_reader :path, :name, :version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  class Railtie < Rails::Railtie
3
5
  initializer "postgres_aggregates.load" do
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  module SchemaDumper
3
5
  def tables(stream)
6
+ super
7
+
4
8
  # First dump aggregates
5
9
  dump_custom_aggregates(stream)
6
10
  stream.puts
7
-
8
- super
9
11
  end
10
12
 
11
13
  private
@@ -13,13 +15,17 @@ module PgAggregates
13
15
  def dump_custom_aggregates(stream)
14
16
  # Group all versions of each aggregate
15
17
  aggregate_versions = {}
16
-
18
+
17
19
  Dir.glob(Rails.root.join("db/aggregates/*_v*.sql").to_s).each do |file|
18
20
  file_version = FileVersion.new(file)
19
21
  aggregate_versions[file_version.name] ||= []
20
22
  aggregate_versions[file_version.name] << file_version
21
23
  end
22
24
 
25
+ return if aggregate_versions.empty?
26
+
27
+ stream.puts " # These are custom PostgreSQL aggregates that were defined"
28
+
23
29
  # For each aggregate, use the latest version
24
30
  latest_versions = aggregate_versions.transform_values do |versions|
25
31
  versions.max_by(&:version)
@@ -28,11 +34,11 @@ module PgAggregates
28
34
  # Sort by name to ensure consistent ordering
29
35
  latest_versions.keys.sort.each do |aggregate_name|
30
36
  file_version = latest_versions[aggregate_name]
31
-
37
+
32
38
  # Add a comment showing the version history
33
39
  all_versions = aggregate_versions[aggregate_name].map(&:version).sort
34
- version_comment = all_versions.size > 1 ? " -- versions: #{all_versions.join(', ')}" : ""
35
-
40
+ version_comment = all_versions.size > 1 ? " -- versions: #{all_versions.join(", ")}" : ""
41
+
36
42
  stream.puts <<-AGG
37
43
  create_aggregate "#{aggregate_name}", sql_definition: <<-SQL#{version_comment}
38
44
  #{file_version.sql_definition}
@@ -42,4 +48,4 @@ module PgAggregates
42
48
  end
43
49
  end
44
50
  end
45
- end
51
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgAggregates
2
4
  module SchemaStatements
3
5
  def create_aggregate(name, version: nil, sql_definition: nil)
@@ -8,20 +10,20 @@ module PgAggregates
8
10
  else
9
11
  # Fallback to file-based definition if needed
10
12
  aggregate_definition = PgAggregates::AggregateDefinition.new(name, version: version)
11
-
13
+
12
14
  # Check if file exists before trying to read it
13
15
  unless File.exist?(aggregate_definition.path)
14
16
  raise ArgumentError, "Could not find aggregate definition file: #{aggregate_definition.path}"
15
17
  end
16
-
18
+
17
19
  execute aggregate_definition.to_sql
18
20
  end
19
21
  end
20
22
 
21
23
  def drop_aggregate(name, *arg_types, force: false)
22
- arg_types_sql = arg_types.any? ? "(#{arg_types.join(', ')})" : ""
24
+ arg_types_sql = arg_types.any? ? "(#{arg_types.join(", ")})" : ""
23
25
  force_clause = force ? " CASCADE" : ""
24
26
  execute "DROP AGGREGATE IF EXISTS #{name}#{arg_types_sql}#{force_clause}"
25
27
  end
26
28
  end
27
- end
29
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgAggregates
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/pg_aggregates.rb CHANGED
@@ -11,7 +11,7 @@ require_relative "pg_aggregates/railtie"
11
11
 
12
12
  module PgAggregates
13
13
  class Error < StandardError; end
14
-
14
+
15
15
  class << self
16
16
  def database
17
17
  ActiveRecord::Base.connection
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_aggregates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mhenrixon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-04 00:00:00.000000000 Z
11
+ date: 2024-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.1'
27
- - !ruby/object:Gem::Dependency
28
- name: railties
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '6.1'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '6.1'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: pg
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,77 +39,21 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '1.1'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '13.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '13.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.12'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.12'
83
- - !ruby/object:Gem::Dependency
84
- name: ammeter
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.1'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.1'
97
- - !ruby/object:Gem::Dependency
98
- name: database_cleaner-active_record
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: appraisal
42
+ name: railties
113
43
  requirement: !ruby/object:Gem::Requirement
114
44
  requirements:
115
45
  - - ">="
116
46
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
47
+ version: '6.1'
48
+ type: :runtime
119
49
  prerelease: false
120
50
  version_requirements: !ruby/object:Gem::Requirement
121
51
  requirements:
122
52
  - - ">="
123
53
  - !ruby/object:Gem::Version
124
- version: '0'
125
- description: Manage PostgreSQL aggregate functions in your Rails application with
126
- versioned migrations and schema handling. This cuts the need for keeping a structure.sql
54
+ version: '6.1'
55
+ description: "Manage PostgreSQL aggregate functions in your Rails application with
56
+ versioned migrations and schema handling. \n\nThis cuts the need for keeping a structure.sql\n"
127
57
  email:
128
58
  - mikael@mhenrixon.com
129
59
  executables: []
@@ -131,9 +61,17 @@ extensions: []
131
61
  extra_rdoc_files: []
132
62
  files:
133
63
  - ".rspec"
64
+ - ".ruby-version"
65
+ - Appraisals
134
66
  - CHANGELOG.md
135
67
  - LICENSE.txt
136
68
  - README.md
69
+ - gemfiles/rails_6.1.gemfile
70
+ - gemfiles/rails_6.1.gemfile.lock
71
+ - gemfiles/rails_7.0.gemfile
72
+ - gemfiles/rails_7.0.gemfile.lock
73
+ - gemfiles/rails_7.1.gemfile
74
+ - gemfiles/rails_7.1.gemfile.lock
137
75
  - lib/generators/pg/aggregate/aggregate_generator.rb
138
76
  - lib/generators/pg/aggregate/templates/aggregate.sql.erb
139
77
  - lib/generators/pg/aggregate/templates/migration.rb.erb
@@ -169,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
107
  - !ruby/object:Gem::Version
170
108
  version: '0'
171
109
  requirements: []
172
- rubygems_version: 3.5.22
110
+ rubygems_version: 3.2.33
173
111
  signing_key:
174
112
  specification_version: 4
175
113
  summary: Rails integration for PostgreSQL aggregate functions