activerecord-cte 0.1.1 → 0.2.0

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: 99aec3bf8a3947e2c887a63ca0b2d689987774c0af840b333217a87e5b9d94df
4
- data.tar.gz: dac179b4c433590c7b20c6062361e827de39c62aae2c6aae61304b9e9ffaca04
3
+ metadata.gz: 24b0c6a6425bfa8f8b7137d7f3a96b84aa97c10f4d00b25c5a091890fef2de73
4
+ data.tar.gz: d6856b61cf2e747807af2baf843a41c3e667832a97183ff3db3867486c8e9d90
5
5
  SHA512:
6
- metadata.gz: 2e7d6031d0ecab21c7b7b80e265b4397155f4ac0ae9aa40e70cc800a9ad3631889a303418ac17b9d7f21076682c045ed750d1b1c34b8d801ff4ad59d33cfefee
7
- data.tar.gz: 239f8aba0becd85787d49ed1b6a4102e94a3e5b77d375591cddc5df98bd5bd307c2828eb900cc8d056ba71a4f57d4b193aa924330d2bf8c3b6af3c37f6017cef
6
+ metadata.gz: 0c68905f134a9d8c4e52a21aa1ab278b4de60b00fc93d2acd6935f0a65d8699fa76f543e03f6d9885d1fb148bdd48f9d072d9c66a12d7cb988e158068cb678ed
7
+ data.tar.gz: 0c999b62136a17857046eeb384a9fc8090e9cf70d8e7fa06febdd663169994ce348c657cc414795e5f47fc73fb7325d6903e3f5ed202c124d2d832b8bed45b70
@@ -0,0 +1,12 @@
1
+ name: Rubocop
2
+ on: [pull_request]
3
+ jobs:
4
+ Rubocop:
5
+ runs-on: ubuntu-latest
6
+ steps:
7
+ - name: Check out repository code
8
+ uses: actions/checkout@v2
9
+ - name: Setup Ruby
10
+ uses: ruby/setup-ruby@v1
11
+ - run: bundle install
12
+ - run: bundle exec rubocop
@@ -0,0 +1,25 @@
1
+ name: MySql
2
+ on: [pull_request]
3
+ jobs:
4
+ Test-With-Mysql:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ fail-fast: false
8
+ matrix:
9
+ active_record: [6.1.4, 6.0.4]
10
+ env:
11
+ ACTIVE_RECORD_VERSION: ${{ matrix.active_record }}
12
+ DATABASE_ADAPTER: mysql
13
+ INSTALL_MYSQL_GEM: true
14
+ RAILS_ENV: test
15
+ steps:
16
+ - name: Check out repository code
17
+ uses: actions/checkout@v2
18
+ - name: Start mysql
19
+ run: sudo service mysql start
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24
+ - name: Run tests
25
+ run: bundle exec rake test
@@ -0,0 +1,34 @@
1
+ name: PostgreSQL
2
+ on: [pull_request]
3
+ jobs:
4
+ Test-With-PostgreSQL:
5
+ runs-on: ubuntu-latest
6
+ container: ruby:3.0
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ active_record: [6.1.4, 6.0.4]
11
+ env:
12
+ ACTIVE_RECORD_VERSION: ${{ matrix.active_record }}
13
+ DATABASE_ADAPTER: postgresql
14
+ INSTALL_PG_GEM: true
15
+ RAILS_ENV: test
16
+ services:
17
+ postgres:
18
+ image: postgres
19
+ env:
20
+ POSTGRES_PASSWORD: postgres
21
+ options: >-
22
+ --health-cmd pg_isready
23
+ --health-interval 10s
24
+ --health-timeout 5s
25
+ --health-retries 5
26
+ ports:
27
+ - 5432:5432
28
+ steps:
29
+ - name: Check out repository code
30
+ uses: actions/checkout@v2
31
+ - name: Bundle dependencies
32
+ run: bundle install
33
+ - name: Run tests
34
+ run: bundle exec rake test
@@ -0,0 +1,29 @@
1
+ name: SQLite
2
+ on: [pull_request]
3
+ jobs:
4
+ Test-With-SQLite:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ fail-fast: false
8
+ matrix:
9
+ active_record: [6.1.4, 6.0.4, 5.2.6]
10
+ # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
11
+ ruby: [2.6, 2.7, '3.0']
12
+ exclude:
13
+ - active_record: 5.2.6
14
+ ruby: '3.0'
15
+
16
+ env:
17
+ ACTIVE_RECORD_VERSION: ${{ matrix.active_record }}
18
+ DATABASE_ADAPTER: sqlite3
19
+ RAILS_ENV: test
20
+ steps:
21
+ - name: Check out repository code
22
+ uses: actions/checkout@v2
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby }}
27
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
28
+ - name: Run tests
29
+ run: bundle exec rake test
data/.rubocop.yml CHANGED
@@ -1,8 +1,14 @@
1
1
  require:
2
+ - rubocop-minitest
2
3
  - rubocop-performance
4
+ - rubocop-rake
3
5
 
4
6
  AllCops:
5
- TargetRubyVersion: 2.6
7
+ NewCops: enable
8
+ TargetRubyVersion: 2.7
9
+
10
+ Gemspec/RequiredRubyVersion:
11
+ Enabled: false
6
12
 
7
13
  Layout/LineLength:
8
14
  AllowHeredoc: true
@@ -10,15 +16,30 @@ Layout/LineLength:
10
16
  IgnoreCopDirectives: true
11
17
  Max: 120
12
18
  Exclude:
19
+ - "activerecord-cte.gemspec"
13
20
  - "test/**/*"
14
21
 
22
+ Layout/MultilineMethodCallIndentation:
23
+ EnforcedStyle: indented
24
+
15
25
  Metrics/AbcSize:
16
26
  Exclude:
17
- - "test/**/*"
27
+ - "test/**/*_test.rb"
28
+
29
+ Metrics/ClassLength:
30
+ Exclude:
31
+ - "test/**/*_test.rb"
18
32
 
19
33
  Metrics/CyclomaticComplexity:
20
34
  Max: 7
21
35
 
36
+ Metrics/MethodLength:
37
+ Exclude:
38
+ - "test/**/*_test.rb"
39
+
40
+ Minitest/MultipleAssertions:
41
+ Max: 5
42
+
22
43
  Style/ClassAndModuleChildren:
23
44
  Enabled: false
24
45
 
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.2
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM ruby:2.6
1
+ FROM ruby:3.0
2
2
 
3
3
  ENV APP_HOME /activerecord_cte
4
4
  RUN mkdir $APP_HOME
@@ -7,6 +7,7 @@ WORKDIR $APP_HOME
7
7
  ENV RAILS_ENV test
8
8
  ENV INSTALL_MYSQL_GEM true
9
9
  ENV INSTALL_PG_GEM true
10
+ ENV MYSQL_HOST mysql
10
11
 
11
12
  # Cache the bundle install
12
13
  COPY Gemfile* $APP_HOME/
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in activerecord-cte.gemspec
6
6
  gemspec
7
7
 
8
- ACTIVE_RECORD_VERSION = ENV.fetch("ACTIVE_RECORD_VERSION") { "6.0.2.1" }
8
+ ACTIVE_RECORD_VERSION = ENV.fetch("ACTIVE_RECORD_VERSION", "6.1.4")
9
9
 
10
10
  gem "activerecord", ACTIVE_RECORD_VERSION
11
11
 
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # ActiveRecord::Cte
2
2
 
3
- Adds Common Table Expression support to ActiveRecord (Rails).
3
+ ![Rubocop](https://github.com/vlado/activerecord-cte/actions/workflows/rubocop.yml/badge.svg)
4
+ ![MySQL](https://github.com/vlado/activerecord-cte/actions/workflows/test-with-mysql.yml/badge.svg)
5
+ ![PostgreSQL](https://github.com/vlado/activerecord-cte/actions/workflows/test-with-postgresql.yml/badge.svg)
6
+ ![SQLite](https://github.com/vlado/activerecord-cte/actions/workflows/test-with-sqlite.yml/badge.svg)
7
+
8
+ Adds [Common Table Expression](https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL#Common_table_expression) support to ActiveRecord (Rails).
4
9
 
5
10
  It adds `.with` query method and makes it super easy to build and chain complex CTE queries. Let's explain it using simple example.
6
11
 
@@ -22,6 +27,8 @@ WITH posts_with_comments AS (
22
27
  SELECT * FROM posts
23
28
  ```
24
29
 
30
+ **Please note that this creates the expressions but is not using them yet. See [Taking it further](#taking-it-further) for more info.**
31
+
25
32
  Without this gem you would need to use `Arel` directly.
26
33
 
27
34
  ```ruby
@@ -196,11 +203,27 @@ I decided to wait a bit :)
196
203
 
197
204
  After checking out the repo, run `bin/setup` to install dependencies.
198
205
 
206
+ ### Running Rubocop
207
+
208
+ ```
209
+ bundle exec rubocop
210
+ ```
211
+
199
212
  ### Running tests
200
213
 
201
- Run `rake test` to run the tests using SQLite adapter and latest version on Rails.
214
+ To run the tests using SQLite adapter and latest version on Rails run
215
+
216
+ ```
217
+ bundle exec rake test
218
+ ```
219
+
220
+ GitHub Actions will run the test matrix with multiple ActiveRecord versions and database adapters. You can also run the matrix locally with
221
+
222
+ ```
223
+ bundle exec rake test:matrix
224
+ ```
202
225
 
203
- To run tests using all supportted database adapters and ActiveRecord versions run `rake test:matrix`. This will build Docker image with all dependencies and run alll tests in it. See `bin/test` for more info.
226
+ This will build Docker image with all dependencies and run all tests in it. See `bin/test` for more info.
204
227
 
205
228
  ### Console
206
229
 
@@ -212,7 +235,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
212
235
 
213
236
  ## Contributing
214
237
 
215
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/activerecord-cte. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
238
+ Bug reports and pull requests are welcome on GitHub at https://github.com/vlado/activerecord-cte. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
216
239
 
217
240
  ## License
218
241
 
@@ -220,4 +243,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
220
243
 
221
244
  ## Code of Conduct
222
245
 
223
- Everyone interacting in the Activerecord::Cte project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/activerecord-cte/blob/master/CODE_OF_CONDUCT.md).
246
+ Everyone interacting in the Activerecord::Cte project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/vlado/activerecord-cte/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -12,7 +12,10 @@ end
12
12
  task default: :test
13
13
 
14
14
  namespace :test do
15
+ desc "Will run the tests in all db adapters - AR version combinations"
15
16
  task :matrix do
17
+ require "English"
16
18
  system("docker-compose build && docker-compose run lib bin/test")
19
+ exit($CHILD_STATUS.exitstatus) unless $CHILD_STATUS.success?
17
20
  end
18
21
  end
@@ -11,6 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["vladocingel@gmail.com"]
12
12
 
13
13
  spec.summary = "Brings Common Table Expressions support to ActiveRecord and makes it super easy to build and chain complex CTE queries"
14
+ spec.description = spec.summary
14
15
  spec.homepage = "https://github.com/vlado/activerecord-cte"
15
16
  spec.license = "MIT"
16
17
 
@@ -19,6 +20,7 @@ Gem::Specification.new do |spec|
19
20
  spec.metadata["homepage_uri"] = spec.homepage
20
21
  spec.metadata["source_code_uri"] = "https://github.com/vlado/activerecord-cte"
21
22
 
23
+ spec.required_ruby_version = ">= 1.9.2"
22
24
  # Specify which files should be added to the gem when it is released.
23
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
26
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -33,7 +35,9 @@ Gem::Specification.new do |spec|
33
35
  spec.add_development_dependency "bundler", "~> 2.0"
34
36
  spec.add_development_dependency "minitest", "~> 5.0"
35
37
  spec.add_development_dependency "rake", "~> 13.0.1"
36
- spec.add_development_dependency "rubocop", "~> 0.80.1"
37
- spec.add_development_dependency "rubocop-performance", "~> 1.5.2"
38
+ spec.add_development_dependency "rubocop", "~> 1.17.0"
39
+ spec.add_development_dependency "rubocop-minitest", "~> 0.13.0"
40
+ spec.add_development_dependency "rubocop-performance", "~> 1.11.3"
41
+ spec.add_development_dependency "rubocop-rake", "~> 0.5.1"
38
42
  spec.add_development_dependency "sqlite3"
39
43
  end
data/bin/test CHANGED
@@ -1,26 +1,46 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- ADAPTERS = %w[
5
- mysql
6
- postgresql
7
- sqlite3
8
- ]
9
- AR_VERSIONS = %w[
10
- 6.0.2.1
11
- 5.2.4.1
12
- ]
13
-
14
- ORIGINAL_AR_VERSION = `bundle show activerecord`.split("-").last.strip
15
-
16
- AR_VERSIONS.each do |ar_version|
17
- puts "----> Running tests with ActiveRecord #{ar_version}"
18
- system("ACTIVE_RECORD_VERSION=#{ar_version} bundle update activerecord") unless ar_version == ORIGINAL_AR_VERSION
19
- ADAPTERS.each do |adapter|
20
- puts "----> Running tests with #{adapter} adapter"
21
- system("DATABASE_ADAPTER=#{adapter} ACTIVE_RECORD_VERSION=#{ar_version} bundle exec rake")
4
+ require "English"
5
+ require "yaml"
6
+
7
+ active_record_versions = %w[6.1.4 6.0.4]
8
+ database_adapters = %w[mysql postgresql sqlite3]
9
+
10
+ class Matrix
11
+ def initialize(active_record_versions, database_adapters)
12
+ @active_record_versions = active_record_versions
13
+ @database_adapters = database_adapters
14
+ @exit_status_code = 0
15
+ end
16
+
17
+ def run
18
+ original_ar_version = `bundle show activerecord`.split("-").last.strip
19
+ @active_record_versions.each do |ar_version|
20
+ run_with_active_record_version(ar_version)
21
+ end
22
+ puts "----> Reverting back to original ActiveRecord version (#{original_ar_version})"
23
+ cmd("ACTIVE_RECORD_VERSION=#{original_ar_version} bundle update")
24
+
25
+ exit(@exit_status_code) unless @exit_status_code.zero?
26
+ end
27
+
28
+ private
29
+
30
+ def cmd(cmd)
31
+ system(cmd)
32
+ @exit_status_code = $CHILD_STATUS.exitstatus unless $CHILD_STATUS.success?
33
+ end
34
+
35
+ def run_with_active_record_version(ar_version)
36
+ puts "----> Switching ActiveRecord to version #{ar_version}"
37
+ cmd("ACTIVE_RECORD_VERSION=#{ar_version} bundle update")
38
+
39
+ @database_adapters.each do |adapter|
40
+ puts "----> Running tests with ActiveRecord #{ar_version} and #{adapter} adapter"
41
+ cmd("DATABASE_ADAPTER=#{adapter} ACTIVE_RECORD_VERSION=#{ar_version} bundle exec rake test")
42
+ end
22
43
  end
23
44
  end
24
45
 
25
- puts "----> Reverting back to original ActiveRecord version (#{ORIGINAL_AR_VERSION})"
26
- system("ACTIVE_RECORD_VERSION=#{ORIGINAL_AR_VERSION} bundle update activerecord")
46
+ Matrix.new(active_record_versions.flatten.uniq, database_adapters.uniq).run
data/docker-compose.yml CHANGED
@@ -15,9 +15,9 @@ services:
15
15
  restart: always
16
16
  environment:
17
17
  MYSQL_DATABASE: activerecord_cte_test
18
- MYSQL_USER: user
19
- MYSQL_PASSWORD: secret
20
- MYSQL_ROOT_PASSWORD: secret
18
+ MYSQL_USER: root
19
+ MYSQL_PASSWORD: root
20
+ MYSQL_ROOT_PASSWORD: root
21
21
  ports:
22
22
  - 3306:3306
23
23
  expose:
@@ -28,8 +28,8 @@ services:
28
28
  restart: always
29
29
  environment:
30
30
  POSTGRES_DB: activerecord_cte_test
31
- POSTGRES_USER: user
32
- POSTGRES_PASSWORD: secret
31
+ POSTGRES_USER: postgres
32
+ POSTGRES_PASSWORD: postgres
33
33
  ports:
34
34
  - 5432:5432
35
35
  expose:
@@ -5,7 +5,26 @@ module ActiveRecord
5
5
  delegate :with, to: :all
6
6
  end
7
7
 
8
+ module WithMerger
9
+ def merge
10
+ super
11
+ merge_withs
12
+ relation
13
+ end
14
+
15
+ private
16
+
17
+ def merge_withs
18
+ other_values = other.with_values.reject { |value| relation.with_values.include?(value) }
19
+ relation.with!(*other_values) if other_values.any?
20
+ end
21
+ end
22
+
8
23
  class Relation
24
+ class Merger
25
+ prepend WithMerger
26
+ end
27
+
9
28
  def with(opts, *rest)
10
29
  spawn.with!(opts, *rest)
11
30
  end
@@ -27,13 +46,13 @@ module ActiveRecord
27
46
 
28
47
  private
29
48
 
30
- def build_arel(aliases)
31
- arel = super(aliases)
49
+ def build_arel(*args)
50
+ arel = super
32
51
  build_with(arel) if @values[:with]
33
52
  arel
34
53
  end
35
54
 
36
- def build_with(arel) # rubocop:disable Metrics/MethodLength
55
+ def build_with(arel) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
37
56
  return if with_values.empty?
38
57
 
39
58
  recursive = with_values.delete(:recursive)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Activerecord
4
4
  module Cte
5
- VERSION = "0.1.1"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-cte
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vlado Cingel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2021-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -72,28 +72,56 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.80.1
75
+ version: 1.17.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.80.1
82
+ version: 1.17.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.13.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.13.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rubocop-performance
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 1.5.2
103
+ version: 1.11.3
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 1.5.2
110
+ version: 1.11.3
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.5.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.5.1
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: sqlite3
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -108,15 +136,21 @@ dependencies:
108
136
  - - ">="
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
- description:
139
+ description: Brings Common Table Expressions support to ActiveRecord and makes it
140
+ super easy to build and chain complex CTE queries
112
141
  email:
113
142
  - vladocingel@gmail.com
114
143
  executables: []
115
144
  extensions: []
116
145
  extra_rdoc_files: []
117
146
  files:
147
+ - ".github/workflows/rubocop.yml"
148
+ - ".github/workflows/test-with-mysql.yml"
149
+ - ".github/workflows/test-with-postgresql.yml"
150
+ - ".github/workflows/test-with-sqlite.yml"
118
151
  - ".gitignore"
119
152
  - ".rubocop.yml"
153
+ - ".ruby-version"
120
154
  - ".travis.yml"
121
155
  - ".vimrc"
122
156
  - CODE_OF_CONDUCT.md
@@ -140,7 +174,7 @@ metadata:
140
174
  allowed_push_host: https://rubygems.org
141
175
  homepage_uri: https://github.com/vlado/activerecord-cte
142
176
  source_code_uri: https://github.com/vlado/activerecord-cte
143
- post_install_message:
177
+ post_install_message:
144
178
  rdoc_options: []
145
179
  require_paths:
146
180
  - lib
@@ -148,15 +182,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
182
  requirements:
149
183
  - - ">="
150
184
  - !ruby/object:Gem::Version
151
- version: '0'
185
+ version: 1.9.2
152
186
  required_rubygems_version: !ruby/object:Gem::Requirement
153
187
  requirements:
154
188
  - - ">="
155
189
  - !ruby/object:Gem::Version
156
190
  version: '0'
157
191
  requirements: []
158
- rubygems_version: 3.0.3
159
- signing_key:
192
+ rubygems_version: 3.2.22
193
+ signing_key:
160
194
  specification_version: 4
161
195
  summary: Brings Common Table Expressions support to ActiveRecord and makes it super
162
196
  easy to build and chain complex CTE queries