acts_as_list 1.2.4 → 1.2.5

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: 8fb937125e21c3674aefbf6cce0dbc334380a975b3c0cbf1e13c79f43a4fecd4
4
- data.tar.gz: ead5fb00d9321a35f409e7c005eeebfb66192d7e4952040f4008d557726e38df
3
+ metadata.gz: dd73c8d74d8ff9e3f912f41181c1c8fe544f8c3a9b9f6f065288207d99b5d116
4
+ data.tar.gz: bdf48adfe5a2bff8f3b660dfa09fce7217ca62447dc633c89a290568e42707f0
5
5
  SHA512:
6
- metadata.gz: c8a8c099d4808b9f5c92eefd0a70f3b6f9b7e694b80f68a5b985bab159ec32be9f0256f5d7f9b053891e81d507eae9cb8c0a3fbb56e18646ce2e3202c10c6d68
7
- data.tar.gz: 0f4f91c1879293d00012462f37f0cb3e801d88450369d6db52ab7c53a7abab6c4523a1a5b691ad0a9d937bc783fa44008770617c541a22ef35393b69f0afaf3c
6
+ metadata.gz: 15abab96e0b079ad43a759c8c3eaa221d5c85406780f6255dc49f2f6723222bdad1c3470f79c7fe0c5c9dc53bdd67722b00039bda55e1cb76df20a6051b48fc7
7
+ data.tar.gz: cdcc37dfb3eaa17ceef2ca2f938e8837b1cfeec5189c815355ae2d385bc70db71c1a3ab139dcc812c1bdece51c2b5d72b702bbadb39596b1a3e09dc5b0fafbc7
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## v1.2.5 - 2025-10-21
10
+
11
+ - Fix crash when deleting an association with composite primary keys [\#450](https://github.com/brendon/acts_as_list/pull/450) ([smathieu])
12
+
9
13
  ## v1.2.4 - 2024-11-20
10
14
 
11
15
  ### Added
@@ -21,7 +21,16 @@ module ActiveRecord::Acts::List::ScopeMethodDefiner #:nodoc:
21
21
  end
22
22
 
23
23
  define_method :destroyed_via_scope? do
24
- scope == (destroyed_by_association && destroyed_by_association.foreign_key.to_sym)
24
+ return false unless destroyed_by_association
25
+
26
+ foreign_key = destroyed_by_association.foreign_key
27
+ if foreign_key.is_a?(Array)
28
+ # Composite foreign key - check if scope is one of the keys
29
+ foreign_key.map(&:to_sym).include?(scope)
30
+ else
31
+ # Single foreign key
32
+ scope == foreign_key.to_sym
33
+ end
25
34
  end
26
35
  elsif scope.is_a?(Array)
27
36
  define_method :scope_condition do
@@ -44,7 +53,16 @@ module ActiveRecord::Acts::List::ScopeMethodDefiner #:nodoc:
44
53
  end
45
54
 
46
55
  define_method :destroyed_via_scope? do
47
- scope_condition.keys.include? (destroyed_by_association && destroyed_by_association.foreign_key.to_sym)
56
+ return false unless destroyed_by_association
57
+
58
+ foreign_key = destroyed_by_association.foreign_key
59
+ if foreign_key.is_a?(Array)
60
+ # Composite foreign key - check if any keys overlap with scope
61
+ (scope_condition.keys & foreign_key.map(&:to_sym)).any?
62
+ else
63
+ # Single foreign key
64
+ scope_condition.keys.include?(foreign_key.to_sym)
65
+ end
48
66
  end
49
67
  else
50
68
  define_method :scope_condition do
@@ -68,7 +86,10 @@ module ActiveRecord::Acts::List::ScopeMethodDefiner #:nodoc:
68
86
  return name if name.to_s =~ /_id$/
69
87
 
70
88
  if caller_class.reflections.key?(name.to_s)
71
- caller_class.reflections[name.to_s].foreign_key.to_sym
89
+ foreign_key = caller_class.reflections[name.to_s].foreign_key
90
+ # Handle composite foreign keys (Arrays) by returning as-is
91
+ # Single foreign keys should be converted to symbols
92
+ foreign_key.is_a?(Array) ? foreign_key.map(&:to_sym) : foreign_key.to_sym
72
93
  else
73
94
  ActiveSupport::Inflector.foreign_key(name).to_sym
74
95
  end
@@ -3,7 +3,7 @@
3
3
  module ActiveRecord
4
4
  module Acts
5
5
  module List
6
- VERSION = '1.2.4'
6
+ VERSION = '1.2.5'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swanand Pagnis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-11-19 00:00:00.000000000 Z
12
+ date: 2025-10-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -39,90 +39,6 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '6.1'
42
- - !ruby/object:Gem::Dependency
43
- name: minitest-hooks
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: 1.5.1
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 1.5.1
56
- - !ruby/object:Gem::Dependency
57
- name: mocha
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 2.1.0
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: 2.1.0
70
- - !ruby/object:Gem::Dependency
71
- name: timecop
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: 0.9.8
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: 0.9.8
84
- - !ruby/object:Gem::Dependency
85
- name: mysql2
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: 0.5.6
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: 0.5.6
98
- - !ruby/object:Gem::Dependency
99
- name: pg
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: 1.5.5
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: 1.5.5
112
- - !ruby/object:Gem::Dependency
113
- name: sqlite3
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: 1.7.2
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: 1.7.2
126
42
  description: This "acts_as" extension provides the capabilities for sorting and reordering
127
43
  a number of objects in a list. The class that has this specified needs to have a
128
44
  "position" column defined as an integer on the mapped database table.
@@ -176,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
92
  - !ruby/object:Gem::Version
177
93
  version: '0'
178
94
  requirements: []
179
- rubygems_version: 3.3.7
95
+ rubygems_version: 3.5.22
180
96
  signing_key:
181
97
  specification_version: 4
182
98
  summary: A gem adding sorting, reordering capabilities to an active_record model,