awesome_nested_set 2.1.2 → 2.1.3
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.
- data/CHANGELOG +9 -0
- data/lib/awesome_nested_set/awesome_nested_set.rb +24 -3
- data/lib/awesome_nested_set/version.rb +1 -1
- metadata +34 -50
data/CHANGELOG
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
2.1.3
|
2
|
+
* Update child depth when parent node is moved. [Amanda Wagener]
|
3
|
+
* Added move_to_child_with_index. [Ben Zhang]
|
4
|
+
* Optimised self_and_descendants for when there's an index on lft. [Mark Torrance]
|
5
|
+
* Added support for an unsaved record to return the right 'root'. [Philip Arndt]
|
6
|
+
|
7
|
+
2.1.2
|
8
|
+
* Fixed regressions introduced. [Philip Arndt]
|
9
|
+
|
1
10
|
2.1.1
|
2
11
|
* Added 'depth' which indicates how many levels deep the node is.
|
3
12
|
This only works when you have a column called 'depth' in your table,
|
@@ -292,12 +292,20 @@ module CollectiveIdea #:nodoc:
|
|
292
292
|
|
293
293
|
# Returns true is this is a child node
|
294
294
|
def child?
|
295
|
-
!
|
295
|
+
!root?
|
296
296
|
end
|
297
297
|
|
298
298
|
# Returns root
|
299
299
|
def root
|
300
|
-
|
300
|
+
if persisted?
|
301
|
+
self_and_ancestors.where(parent_column_name => nil).first
|
302
|
+
else
|
303
|
+
if parent_id && current_parent = nested_set_scope.find(parent_id)
|
304
|
+
current_parent.root
|
305
|
+
else
|
306
|
+
self
|
307
|
+
end
|
308
|
+
end
|
301
309
|
end
|
302
310
|
|
303
311
|
# Returns the array of all parents and self
|
@@ -336,7 +344,8 @@ module CollectiveIdea #:nodoc:
|
|
336
344
|
# Returns a set of itself and all of its nested children
|
337
345
|
def self_and_descendants
|
338
346
|
nested_set_scope.where([
|
339
|
-
"#{self.class.quoted_table_name}.#{quoted_left_column_name} >= ? AND #{self.class.quoted_table_name}.#{
|
347
|
+
"#{self.class.quoted_table_name}.#{quoted_left_column_name} >= ? AND #{self.class.quoted_table_name}.#{quoted_left_column_name} < ?", left, right
|
348
|
+
# using _left_ for both sides here lets us benefit from an index on that column if one exists
|
340
349
|
])
|
341
350
|
end
|
342
351
|
|
@@ -404,6 +413,17 @@ module CollectiveIdea #:nodoc:
|
|
404
413
|
move_to node, :child
|
405
414
|
end
|
406
415
|
|
416
|
+
# Move the node to the child of another node with specify index (you can pass id only)
|
417
|
+
def move_to_child_with_index(node, index)
|
418
|
+
if node.children.empty?
|
419
|
+
move_to_child_of(node)
|
420
|
+
elsif node.children.count == index
|
421
|
+
move_to_right_of(node.children.last)
|
422
|
+
else
|
423
|
+
move_to_left_of(node.children[index])
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
407
427
|
# Move the node to root nodes
|
408
428
|
def move_to_root
|
409
429
|
move_to nil, :root
|
@@ -609,6 +629,7 @@ module CollectiveIdea #:nodoc:
|
|
609
629
|
end
|
610
630
|
target.reload_nested_set if target
|
611
631
|
self.set_depth!
|
632
|
+
self.children.each(&:save)
|
612
633
|
self.reload_nested_set
|
613
634
|
end
|
614
635
|
end
|
metadata
CHANGED
@@ -1,49 +1,41 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: awesome_nested_set
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 1
|
9
|
-
- 2
|
10
|
-
version: 2.1.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Brandon Keepers
|
14
9
|
- Daniel Morrison
|
15
10
|
- Philip Arndt
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2012-04-11 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
23
17
|
name: activerecord
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 7
|
31
|
-
segments:
|
32
|
-
- 3
|
33
|
-
- 0
|
34
|
-
- 0
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
35
23
|
version: 3.0.0
|
36
24
|
type: :runtime
|
37
|
-
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 3.0.0
|
38
32
|
description: An awesome nested set implementation for Active Record
|
39
33
|
email: info@collectiveidea.com
|
40
34
|
executables: []
|
41
|
-
|
42
35
|
extensions: []
|
43
|
-
|
44
|
-
extra_rdoc_files:
|
36
|
+
extra_rdoc_files:
|
45
37
|
- README.rdoc
|
46
|
-
files:
|
38
|
+
files:
|
47
39
|
- lib/awesome_nested_set/awesome_nested_set.rb
|
48
40
|
- lib/awesome_nested_set/helper.rb
|
49
41
|
- lib/awesome_nested_set/version.rb
|
@@ -53,39 +45,31 @@ files:
|
|
53
45
|
- CHANGELOG
|
54
46
|
homepage: http://github.com/collectiveidea/awesome_nested_set
|
55
47
|
licenses: []
|
56
|
-
|
57
48
|
post_install_message:
|
58
|
-
rdoc_options:
|
49
|
+
rdoc_options:
|
59
50
|
- --main
|
60
51
|
- README.rdoc
|
61
52
|
- --inline-source
|
62
53
|
- --line-numbers
|
63
|
-
require_paths:
|
54
|
+
require_paths:
|
64
55
|
- lib
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
57
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
|
72
|
-
- 0
|
73
|
-
version: "0"
|
74
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
63
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
segments:
|
81
|
-
- 0
|
82
|
-
version: "0"
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
83
68
|
requirements: []
|
84
|
-
|
85
69
|
rubyforge_project:
|
86
|
-
rubygems_version: 1.8.
|
70
|
+
rubygems_version: 1.8.19
|
87
71
|
signing_key:
|
88
72
|
specification_version: 3
|
89
73
|
summary: An awesome nested set implementation for Active Record
|
90
74
|
test_files: []
|
91
|
-
|
75
|
+
has_rdoc:
|