baby_squeel 1.4.4 → 2.0.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: 54dbc98299ab8f9909d8c312e9663cc615543ea6421b81f2aab6efdd2bd9fe59
4
- data.tar.gz: 97cc39dced57e0bd6bf16c854859f47902a2d6550e71c4120643fb01d0de9529
3
+ metadata.gz: e317da76921bc04f342b3cd1f219fa6585f642c4b96e936a18a442a1eb51c18b
4
+ data.tar.gz: 6a25d3d64d518f5b43124b4dd9083636f10ac0fad1e0ba4e9634f0dded17cb23
5
5
  SHA512:
6
- metadata.gz: 8f5e68cf4ac0e85d2dc8fce1741f2d64c2bd5b5ecc08c335d71ad3fae335fb3b580f5c3aa2c5f98053ec445d9a7fbc1d3ddec6c7218c99bcb9869a6767fa68c8
7
- data.tar.gz: ca66ea54876dfb670177ccea3be1808c90b4d1affea3b7bc1cb5c515e6e8208a8b55fb9fcd06202c6411ea102a358ceb0aa7d0468f82ee7c857045fbc0c5e946
6
+ metadata.gz: f1bcaadbb4fc5894a5cd1e4c797ac3d6cfbbaee0cad994caf360fc2ac347f9a30019c297bcd254cae7642574b56bd22d927ea492bad76be02905379847af5330
7
+ data.tar.gz: 012e06a95f564e7502a4aa73a5629969f82e76a4abf475fa7364f25891f3345710334848313d6c3fc4c3842da29c5fc3220d95d58a1829258445886be8ac143e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  ## [Unreleased]
2
2
 
3
+ - AR 6.1: fix - FrozenError: can't modify frozen object: []
4
+ - Drop support for ActiveRecord older than 6.0.
5
+
3
6
  ## [1.4.4] - 2022-02-07
4
7
 
5
8
  ### Fixed
data/ISSUE_TEMPLATE.md CHANGED
@@ -11,7 +11,7 @@ require 'minitest/autorun'
11
11
 
12
12
  gemfile true do
13
13
  source 'https://rubygems.org'
14
- gem 'activerecord', '~> 5.2.0' # which Active Record version?
14
+ gem 'activerecord', '~> 6.0.0' # which Active Record version?
15
15
  gem 'sqlite3'
16
16
  gem 'baby_squeel', github: 'rzane/baby_squeel'
17
17
  end
data/baby_squeel.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.files = Dir.glob('{lib/**/*,*.{md,txt,gemspec}}')
21
21
 
22
- spec.add_dependency 'activerecord', '>= 5.2', '< 7.1'
22
+ spec.add_dependency 'activerecord', '>= 6.0', '< 7.1'
23
23
  spec.add_dependency 'ransack', '~> 2.3'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 2'
@@ -64,10 +64,12 @@ module BabySqueel
64
64
 
65
65
  # https://github.com/rails/rails/commit/c0c53ee9d28134757cf1418521cb97c4a135f140
66
66
  def select_association_list(*args)
67
- args[0].extend(BabySqueel::ActiveRecord::QueryMethods::Injector6_1)
67
+ if args[0].any? { |join| join.is_a?(BabySqueel::Join) }
68
+ args[0].extend(BabySqueel::ActiveRecord::QueryMethods::Injector6_1)
69
+ end
68
70
  super *args
69
71
  end
70
- elsif BabySqueel::ActiveRecord::VersionHelper.at_least_6_0?
72
+ else
71
73
  private
72
74
 
73
75
  # Active Record will call `each` on the `joins`. The
@@ -77,16 +79,6 @@ module BabySqueel
77
79
  args[1] = BabySqueel::JoinDependency::Injector6_0.new(args.second)
78
80
  super(*args)
79
81
  end
80
- else
81
- private
82
-
83
- # Active Record will call `group_by` on the `joins`. The
84
- # Injector has a custom `group_by` method that handles
85
- # BabySqueel::Join nodes.
86
- def build_joins(*args)
87
- args[1] = BabySqueel::JoinDependency::Injector5_2.new(args.second)
88
- super(*args)
89
- end
90
82
  end
91
83
  end
92
84
  end
@@ -7,15 +7,6 @@ module BabySqueel
7
7
  ::ActiveRecord::VERSION::MAJOR > 6 ||
8
8
  ::ActiveRecord::VERSION::MAJOR == 6 && ::ActiveRecord::VERSION::MINOR >= 1
9
9
  end
10
-
11
- def self.at_least_6_0?
12
- ::ActiveRecord::VERSION::MAJOR >= 6
13
- end
14
-
15
- def self.at_least_5_2_3?
16
- at_least_6_0? ||
17
- ::ActiveRecord::VERSION::MAJOR >= 5 && ::ActiveRecord::VERSION::MINOR >= 2 && ::ActiveRecord::VERSION::TINY >= 3
18
- end
19
10
  end
20
11
  end
21
12
  end
@@ -2,26 +2,6 @@ require 'baby_squeel/active_record/version_helper'
2
2
 
3
3
  module BabySqueel
4
4
  module JoinDependency
5
- # This class allows BabySqueel to slip custom
6
- # joins_values into Active Record's JoinDependency
7
- class Injector5_2 < Array # :nodoc:
8
- # Active Record will call group_by on this object
9
- # in ActiveRecord::QueryMethods#build_joins. This
10
- # allows BabySqueel::Joins to be treated
11
- # like typical join hashes until Polyamorous can
12
- # deal with them.
13
- def group_by
14
- super do |join|
15
- case join
16
- when BabySqueel::Join
17
- :association_join
18
- else
19
- yield join
20
- end
21
- end
22
- end
23
- end
24
-
25
5
  # This class allows BabySqueel to slip custom
26
6
  # joins_values into Active Record's JoinDependency
27
7
  class Injector6_0 < Array # :nodoc:
@@ -75,7 +55,7 @@ module BabySqueel
75
55
  join_root.each_children do |parent, child|
76
56
  join_dependency.construct_tables_for_association!(parent, child)
77
57
  end
78
- elsif BabySqueel::ActiveRecord::VersionHelper.at_least_5_2_3?
58
+ else
79
59
  # If we tell join_dependency to construct its tables, Active Record
80
60
  # handles building the correct aliases and attaching them to its
81
61
  # JoinDepenencies.
@@ -147,16 +127,9 @@ module BabySqueel
147
127
  join_list = join_nodes + joins
148
128
 
149
129
  alias_tracker = Associations::AliasTracker.create(relation.klass.connection, relation.table.name, join_list)
150
- if BabySqueel::ActiveRecord::VersionHelper.at_least_6_0?
151
- join_dependency = Associations::JoinDependency.new(relation.klass, relation.table, association_joins, Arel::Nodes::InnerJoin)
152
- join_dependency.instance_variable_set(:@alias_tracker, alias_tracker)
153
- elsif BabySqueel::ActiveRecord::VersionHelper.at_least_5_2_3?
154
- join_dependency = Associations::JoinDependency.new(relation.klass, relation.table, association_joins)
155
- join_dependency.instance_variable_set(:@alias_tracker, alias_tracker)
156
- else
157
- # Rails 5.2.0 - 5.2.2
158
- join_dependency = Associations::JoinDependency.new(relation.klass, relation.table, association_joins, alias_tracker)
159
- end
130
+ join_dependency = Associations::JoinDependency.new(relation.klass, relation.table, association_joins, Arel::Nodes::InnerJoin)
131
+ join_dependency.instance_variable_set(:@alias_tracker, alias_tracker)
132
+
160
133
  join_nodes.each do |join|
161
134
  join_dependency.send(:alias_tracker).aliases[join.left.name.downcase] = 1
162
135
  end
@@ -1,3 +1,3 @@
1
1
  module BabySqueel
2
- VERSION = '1.4.4'.freeze
2
+ VERSION = '2.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baby_squeel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Zane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-08 00:00:00.000000000 Z
11
+ date: 2022-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '7.1'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '5.2'
29
+ version: '6.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '7.1'
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubygems_version: 3.3.3
159
+ rubygems_version: 3.3.7
160
160
  signing_key:
161
161
  specification_version: 4
162
162
  summary: An expressive query DSL for Active Record 4 and 5.