awesome_nested_set 3.6.0 → 3.8.0
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 +9 -0
- data/lib/awesome_nested_set/helper.rb +6 -6
- data/lib/awesome_nested_set/model/movable.rb +12 -7
- data/lib/awesome_nested_set/model/prunable.rb +6 -1
- data/lib/awesome_nested_set/model/relatable.rb +4 -0
- data/lib/awesome_nested_set/version.rb +1 -1
- metadata +16 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc5b95f900dabff2e3702170dfd39f5822258e458457ff28d83df6dd80fa9e35
|
4
|
+
data.tar.gz: 0d27ac26d1be3a2bcaab77345fb98165f6b5596298e47c37fb2eb36fc93ebfe0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86b1ec3f8cd1cdab75baaa05c6a29f749c8980cc9b4925f808d197d6404b9949d4c28023e9f2f459727263fdfdc654661c06193c571ce36955774656d647c03b
|
7
|
+
data.tar.gz: 2a6be508a72d1915ece979d3f18614a39dd6308970c71c50894125b6de5041bee983dbb66dc558ffe3e1fa718ea606063b49fd001f9ae5c944d2285eecbca04d
|
data/CHANGELOG
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
Unreleased version
|
2
2
|
|
3
|
+
3.8.0
|
4
|
+
* Support Rails 8.0 [Takuya N](https://github.com/collectiveidea/awesome_nested_set/pull/487)
|
5
|
+
* Enable Rubygems Trusted Publishing
|
6
|
+
|
7
|
+
3.7.0
|
8
|
+
* Teach #move_to_child_of and #move_to_child_with_index to accept :root as a parameter [Micah Geisel](https://github.com/botandrose)
|
9
|
+
* Add #roots method [Micah Geisel](https://github.com/botandrose)
|
10
|
+
* Support Rails 7.2 [Ahmed A. Ibrahim](https://github.com/AhmedAliIbrahim)
|
11
|
+
|
3
12
|
3.6.0
|
4
13
|
* Support Rails 7.1 [Harshal Bhakta](https://github.com/harshalbhakta)
|
5
14
|
* Improve ImpossibleMove error message [AlejandroFernandesAntunes](https://github.com/AlejandroFernandesAntunes)
|
@@ -11,7 +11,7 @@ module CollectiveIdea #:nodoc:
|
|
11
11
|
# You can pass a block receiving an item and returning the string displayed in the select.
|
12
12
|
#
|
13
13
|
# == Params
|
14
|
-
# * +
|
14
|
+
# * +class_or_items+ - Class name or top level items
|
15
15
|
# * +mover+ - The item that is being move, used to exclude impossible moves
|
16
16
|
# * +&block+ - a block that will be used to display: { |item| ... item.name }
|
17
17
|
#
|
@@ -21,12 +21,12 @@ module CollectiveIdea #:nodoc:
|
|
21
21
|
# "#{'–' * i.level} #{i.name}"
|
22
22
|
# }) %>
|
23
23
|
#
|
24
|
-
def nested_set_options(
|
25
|
-
if
|
26
|
-
items =
|
24
|
+
def nested_set_options(class_or_items, mover = nil)
|
25
|
+
if class_or_items.is_a? Array
|
26
|
+
items = class_or_items.reject { |e| !e.root? }
|
27
27
|
else
|
28
|
-
|
29
|
-
items = Array(
|
28
|
+
class_or_items = class_or_items.roots if class_or_items.respond_to?(:scope)
|
29
|
+
items = Array(class_or_items)
|
30
30
|
end
|
31
31
|
result = []
|
32
32
|
items.each do |root|
|
@@ -36,26 +36,31 @@ module CollectiveIdea #:nodoc:
|
|
36
36
|
|
37
37
|
# Move the node to the child of another node
|
38
38
|
def move_to_child_of(node)
|
39
|
-
|
39
|
+
if node == :root
|
40
|
+
move_to_root
|
41
|
+
else
|
42
|
+
move_to node, :child
|
43
|
+
end
|
40
44
|
end
|
41
45
|
|
42
46
|
# Move the node to the child of another node with specify index
|
43
47
|
def move_to_child_with_index(node, index)
|
44
|
-
|
48
|
+
siblings = node == :root ? roots : node.children
|
49
|
+
if siblings.empty?
|
45
50
|
move_to_child_of(node)
|
46
|
-
elsif
|
47
|
-
move_to_right_of(
|
51
|
+
elsif siblings.count == index
|
52
|
+
move_to_right_of(siblings.last)
|
48
53
|
else
|
49
|
-
my_position =
|
54
|
+
my_position = siblings.index(self)
|
50
55
|
if my_position && my_position < index
|
51
56
|
# e.g. if self is at position 0 and we want to move self to position 1 then self
|
52
57
|
# needs to move to the *right* of the node at position 1. That's because the node
|
53
58
|
# that is currently at position 1 will be at position 0 after the move completes.
|
54
|
-
move_to_right_of(
|
59
|
+
move_to_right_of(siblings[index])
|
55
60
|
elsif my_position && my_position == index
|
56
61
|
# do nothing. already there.
|
57
62
|
else
|
58
|
-
move_to_left_of(
|
63
|
+
move_to_left_of(siblings[index])
|
59
64
|
end
|
60
65
|
end
|
61
66
|
end
|
@@ -35,9 +35,14 @@ module CollectiveIdea #:nodoc:
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
# Use reverse to delete from deepest child to parent in order to respect any possible foreign keys
|
39
|
+
def decendants_to_destroy_in_order
|
40
|
+
descendants.reverse
|
41
|
+
end
|
42
|
+
|
38
43
|
def destroy_or_delete_descendants
|
39
44
|
if acts_as_nested_set_options[:dependent] == :destroy
|
40
|
-
|
45
|
+
decendants_to_destroy_in_order.each do |model|
|
41
46
|
model.skip_before_destroy = true
|
42
47
|
model.destroy
|
43
48
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awesome_nested_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Keepers
|
8
8
|
- Daniel Morrison
|
9
9
|
- Philip Arndt
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2024-11-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 4.0.0
|
22
22
|
- - "<"
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '
|
24
|
+
version: '8.1'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
version: 4.0.0
|
32
32
|
- - "<"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '8.1'
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: appraisal
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,16 +106,22 @@ dependencies:
|
|
106
106
|
name: rspec-rails
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - "
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 4.0.0
|
112
|
+
- - "<"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '8.0'
|
112
115
|
type: :development
|
113
116
|
prerelease: false
|
114
117
|
version_requirements: !ruby/object:Gem::Requirement
|
115
118
|
requirements:
|
116
|
-
- - "
|
119
|
+
- - ">="
|
117
120
|
- !ruby/object:Gem::Version
|
118
121
|
version: 4.0.0
|
122
|
+
- - "<"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '8.0'
|
119
125
|
description: An awesome nested set implementation for Active Record
|
120
126
|
email: info@collectiveidea.com
|
121
127
|
executables: []
|
@@ -146,7 +152,7 @@ homepage: https://github.com/collectiveidea/awesome_nested_set
|
|
146
152
|
licenses:
|
147
153
|
- MIT
|
148
154
|
metadata: {}
|
149
|
-
post_install_message:
|
155
|
+
post_install_message:
|
150
156
|
rdoc_options:
|
151
157
|
- "--main"
|
152
158
|
- README.md
|
@@ -165,8 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
171
|
- !ruby/object:Gem::Version
|
166
172
|
version: '0'
|
167
173
|
requirements: []
|
168
|
-
rubygems_version: 3.
|
169
|
-
signing_key:
|
174
|
+
rubygems_version: 3.5.22
|
175
|
+
signing_key:
|
170
176
|
specification_version: 4
|
171
177
|
summary: An awesome nested set implementation for Active Record
|
172
178
|
test_files: []
|