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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/acts_as_list/active_record/acts/scope_method_definer.rb +24 -3
- data/lib/acts_as_list/version.rb +1 -1
- metadata +3 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd73c8d74d8ff9e3f912f41181c1c8fe544f8c3a9b9f6f065288207d99b5d116
|
4
|
+
data.tar.gz: bdf48adfe5a2bff8f3b660dfa09fce7217ca62447dc633c89a290568e42707f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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
|
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
|
data/lib/acts_as_list/version.rb
CHANGED
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
|
+
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:
|
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.
|
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,
|