mongoid-tree 0.6.1 → 0.6.2
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/Rakefile +5 -0
- data/lib/mongoid/tree.rb +4 -1
- data/lib/mongoid/tree/ordering.rb +7 -1
- data/spec/mongoid/tree/ordering_spec.rb +14 -0
- metadata +58 -65
data/Rakefile
CHANGED
data/lib/mongoid/tree.rb
CHANGED
@@ -42,6 +42,12 @@ module Mongoid
|
|
42
42
|
after_destroy :move_lower_siblings_up
|
43
43
|
end
|
44
44
|
|
45
|
+
##
|
46
|
+
# Returns a chainable criteria for this document's ancestors
|
47
|
+
def ancestors
|
48
|
+
base_class.unscoped.where(:_id.in => parent_ids)
|
49
|
+
end
|
50
|
+
|
45
51
|
##
|
46
52
|
# Returns siblings below the current document.
|
47
53
|
# Siblings with a position greater than this documents's position.
|
@@ -181,7 +187,7 @@ module Mongoid
|
|
181
187
|
if self.siblings.empty? || self.siblings.collect(&:position).compact.empty?
|
182
188
|
self.position = 0
|
183
189
|
else
|
184
|
-
self.position = self.siblings.max(:position) + 1
|
190
|
+
self.position = self.siblings.max(:position).to_i + 1
|
185
191
|
end
|
186
192
|
end
|
187
193
|
end
|
@@ -164,6 +164,20 @@ describe Mongoid::Tree::Ordering do
|
|
164
164
|
node(:third_root).first_sibling_in_list.should == node(:first_root)
|
165
165
|
end
|
166
166
|
end
|
167
|
+
|
168
|
+
describe 'ancestors' do
|
169
|
+
it "#ancestors should be returned in the correct order" do
|
170
|
+
setup_tree <<-ENDTREE
|
171
|
+
- root:
|
172
|
+
- level_1_a
|
173
|
+
- level_1_b:
|
174
|
+
- level_2_a:
|
175
|
+
- leaf
|
176
|
+
ENDTREE
|
177
|
+
|
178
|
+
node(:leaf).ancestors.to_a.should == [node(:root), node(:level_1_b), node(:level_2_a)]
|
179
|
+
end
|
180
|
+
end
|
167
181
|
end
|
168
182
|
|
169
183
|
describe 'moving nodes around' do
|
metadata
CHANGED
@@ -1,84 +1,80 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-tree
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.6.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Benedikt Deicke
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-23 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: mongoid
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70159403726680 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
18
|
+
requirements:
|
22
19
|
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.0'
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70159403726680
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70159403726180 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
35
32
|
version: 0.8.7
|
36
33
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rspec
|
40
34
|
prerelease: false
|
41
|
-
|
35
|
+
version_requirements: *70159403726180
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70159403725700 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
|
-
requirements:
|
40
|
+
requirements:
|
44
41
|
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version:
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.3'
|
47
44
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: autotest
|
51
45
|
prerelease: false
|
52
|
-
|
46
|
+
version_requirements: *70159403725700
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: autotest
|
49
|
+
requirement: &70159403755660 !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
57
54
|
version: 4.3.2
|
58
55
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: hanna-nouveau
|
62
56
|
prerelease: false
|
63
|
-
|
57
|
+
version_requirements: *70159403755660
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: hanna-nouveau
|
60
|
+
requirement: &70159403755180 !ruby/object:Gem::Requirement
|
64
61
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
68
65
|
version: 0.2.2
|
69
66
|
type: :development
|
70
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70159403755180
|
71
69
|
description: A tree structure for Mongoid documents using the materialized path pattern
|
72
|
-
email:
|
70
|
+
email:
|
73
71
|
- benedikt@synatic.net
|
74
72
|
executables: []
|
75
|
-
|
76
73
|
extensions: []
|
77
|
-
|
78
|
-
extra_rdoc_files:
|
74
|
+
extra_rdoc_files:
|
79
75
|
- README.rdoc
|
80
76
|
- LICENSE
|
81
|
-
files:
|
77
|
+
files:
|
82
78
|
- lib/mongoid/tree/ordering.rb
|
83
79
|
- lib/mongoid/tree/traversal.rb
|
84
80
|
- lib/mongoid/tree.rb
|
@@ -93,35 +89,32 @@ files:
|
|
93
89
|
- Rakefile
|
94
90
|
- Gemfile
|
95
91
|
- .rspec
|
96
|
-
has_rdoc: true
|
97
92
|
homepage: https://github.com/benedikt/mongoid-tree
|
98
93
|
licenses: []
|
99
|
-
|
100
94
|
post_install_message:
|
101
|
-
rdoc_options:
|
95
|
+
rdoc_options:
|
102
96
|
- --main
|
103
97
|
- README.rdoc
|
104
98
|
- --charset=UTF-8
|
105
|
-
require_paths:
|
99
|
+
require_paths:
|
106
100
|
- lib
|
107
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
102
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version:
|
113
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
108
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version:
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
119
113
|
requirements: []
|
120
|
-
|
121
114
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.
|
115
|
+
rubygems_version: 1.8.10
|
123
116
|
signing_key:
|
124
117
|
specification_version: 3
|
125
118
|
summary: A tree structure for Mongoid documents
|
126
119
|
test_files: []
|
127
|
-
|
120
|
+
has_rdoc:
|