composite_primary_keys 12.0.0.rc2 → 12.0.0.rc3

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: 2de0c70c7a4c4075ec01794087047e1ce9b8f3f72e6c02450519d9b240322a98
4
- data.tar.gz: d87673437c48ed131cbeb39e20a477f1125ba1515dcb59de729e9c5567281e93
3
+ metadata.gz: f64b2e651fc3f4697d277ef8f65415cd2322b9c8e2e08a962ff5c7a7e2558bc0
4
+ data.tar.gz: '059a2e133e9b33caa48f8527c8504a9e79e6aedd038b4b7bbdc07a4fe07f846c'
5
5
  SHA512:
6
- metadata.gz: d4b2d8dcd63be551a19ae50f6acc810506cfffd06c8e2b60e6a6d2461a671d0cab7a4226dbdb2affdb7271d9bab776379343afadc6feb6fdfac4b12949ac10b5
7
- data.tar.gz: 4c0cbfde4dec1c2e7cbee6f0195da429af01917426dfd1dd9fae8eee9a94de48eca75943665e01c3ccfd21ff58ea2d811259722ca0a45e32957ce41d2f605d83
6
+ metadata.gz: 5f30eac243862e7c531278c969384efe3ebfecb94c79085c8deace569ba7828e08efa71b27c7c72114fa3c81bf96a869c1f1ec7865afd72cf43b78e6aef16ac2
7
+ data.tar.gz: ee7923da55d493bba06bbbd401ebdbb52d66d41d289f795e3b1fd1592fee4d93d17b553b3f9ff4c26f2510dd5cfd867134d5745a77bd72c24bec23f9af0cdefa
@@ -25,7 +25,7 @@ module ActiveRecord
25
25
  end
26
26
 
27
27
  stmt = Arel::UpdateManager.new
28
- stmt.table(arel.join_sources.empty? ? table : arel.source)
28
+ # CPK
29
29
  if @klass.composite?
30
30
  stmt.table(table)
31
31
  subselect = arel.clone
@@ -60,10 +60,8 @@ module ActiveRecord
60
60
 
61
61
  def delete_all
62
62
  invalid_methods = INVALID_METHODS_FOR_DELETE_ALL.select do |method|
63
- if respond_to?(:get_value)
64
- value = get_value(method)
65
- SINGLE_VALUE_METHODS.include?(method) ? value : value.any?
66
- end
63
+ value = @values[method]
64
+ method == :distinct ? value : value&.any?
67
65
  end
68
66
  if invalid_methods.any?
69
67
  raise ActiveRecordError.new("delete_all doesn't support #{invalid_methods.join(', ')}")
@@ -75,22 +73,23 @@ module ActiveRecord
75
73
  end
76
74
 
77
75
  stmt = Arel::DeleteManager.new
76
+ # CPK
78
77
  if @klass.composite?
79
- arel_attributes = primary_key.map do |key|
78
+ stmt.from(table)
79
+ subselect = arel.clone
80
+ arel_attributes = primary_keys.map do |key|
80
81
  arel_attribute(key)
81
82
  end.to_composite_keys
82
- subselect = arel.clone
83
- subselect.projections = [arel_attributes]
84
- stmt.from(table)
85
- stmt.key = arel_attributes.in(subselect)
83
+ subselect.projections = arel_attributes
84
+ stmt.wheres = [arel_attributes.in(subselect)]
86
85
  else
87
86
  stmt.from(arel.join_sources.empty? ? table : arel.source)
88
87
  stmt.key = arel_attribute(primary_key)
88
+ stmt.wheres = arel.constraints
89
89
  end
90
90
  stmt.take(arel.limit)
91
91
  stmt.offset(arel.offset)
92
92
  stmt.order(*arel.orders)
93
- stmt.wheres = arel.constraints
94
93
 
95
94
  affected = @klass.connection.delete(stmt, "#{@klass} Destroy")
96
95
 
@@ -3,6 +3,6 @@ module CompositePrimaryKeys
3
3
  MAJOR = 12
4
4
  MINOR = 0
5
5
  TINY = 0
6
- STRING = [MAJOR, MINOR, TINY, 'rc2'].join('.')
6
+ STRING = [MAJOR, MINOR, TINY, 'rc3'].join('.')
7
7
  end
8
8
  end
@@ -29,13 +29,12 @@ class TestDelete < ActiveSupport::TestCase
29
29
  end
30
30
 
31
31
  def test_delete_all_with_join
32
- department = departments(:accounting)
32
+ employee = employees(:mindy)
33
33
 
34
34
  assert_equal(4, Department.count)
35
35
 
36
36
  Department.joins(:employees).
37
- where('departments.department_id = ?', department.department_id).
38
- where('departments.location_id = ?', department.location_id).
37
+ where('employees.name = ?', employee.name).
39
38
  delete_all
40
39
 
41
40
  assert_equal(3, Department.count)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: composite_primary_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.0.0.rc2
4
+ version: 12.0.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Savage