mm-tree 0.1.0 → 0.1.1
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/README.rdoc +4 -1
- data/lib/mongo_mapper/plugins/tree.rb +7 -1
- data/lib/version.rb +1 -1
- data/test/test_tree.rb +10 -1
- metadata +8 -2
data/README.rdoc
CHANGED
@@ -11,7 +11,10 @@ Rational numbers is even better than left/right trees, as you can remove parts o
|
|
11
11
|
|
12
12
|
== Installation
|
13
13
|
|
14
|
-
|
14
|
+
If you are using bundler, and want latest stable gem
|
15
|
+
gem 'mm-tree'
|
16
|
+
|
17
|
+
For latest edge version:
|
15
18
|
gem 'mm-tree', :git => 'http://github.com/leifcr/mm-tree.git'
|
16
19
|
|
17
20
|
== Usage
|
@@ -187,7 +187,13 @@ module MongoMapper
|
|
187
187
|
def set_nv_dv_if_missing
|
188
188
|
return if !tree_use_rational_numbers
|
189
189
|
if (self.tree_info.nv == 0 || self.tree_info.dv == 0 )
|
190
|
-
|
190
|
+
last_sibling = self.siblings.last
|
191
|
+
if (last_sibling == nil)
|
192
|
+
last_sibling_position = 0
|
193
|
+
else
|
194
|
+
last_sibling_position = self.class.position_from_nv_dv(last_sibling.tree_info.nv, last_sibling.tree_info.dv)
|
195
|
+
end
|
196
|
+
new_keys = self.next_keys_available(self[tree_parent_id_field], (last_sibling_position + 1) )
|
191
197
|
self.tree_info.nv = new_keys[:nv]
|
192
198
|
self.tree_info.dv = new_keys[:dv]
|
193
199
|
self.tree_info.snv = new_keys[:snv]
|
data/lib/version.rb
CHANGED
data/test/test_tree.rb
CHANGED
@@ -270,7 +270,7 @@ class TestMongomapperActsAsTree < Test::Unit::TestCase
|
|
270
270
|
assert @node_2_4_1_1.ancestor_tree_keys() == @node_2_4_1.tree_keys(), "After move: #{@node_2_4_1_1.name} ancestor keys should match #{@node_2_4_1.name} got: #{@node_2_4_1_1.ancestor_tree_keys()} expected: #{@node_2_4_1.tree_keys()}"
|
271
271
|
end
|
272
272
|
|
273
|
-
should "
|
273
|
+
should "have changed nv/dv after changing parent (id)" do
|
274
274
|
old_keys = @node_1_2.tree_keys()
|
275
275
|
@node_1_2.parent = @node_2
|
276
276
|
# before saved
|
@@ -286,6 +286,15 @@ class TestMongomapperActsAsTree < Test::Unit::TestCase
|
|
286
286
|
# should still be able to find correct keys for child of moved item
|
287
287
|
assert @node_1_2_1.ancestor_tree_keys() == @node_1_2.tree_keys(), "After move #{@node_1_2_1.name} ancestor keys should match #{@node_1_2.name} got: #{@node_1_2_1.ancestor_tree_keys()} expected: #{@node_1_2.tree_keys()}"
|
288
288
|
end
|
289
|
+
|
290
|
+
should "have correct keys after destroying a sibling and creating a new item" do
|
291
|
+
old_id = @node_1_2._id
|
292
|
+
@node_1_2.destroy
|
293
|
+
Category.find(old_id).should == nil
|
294
|
+
node_1_4 = Category.create(:name => "Node 1.4", :parent => @node_1)
|
295
|
+
node_1_4.tree_keys.should_not == Hash[:nv => 7, :dv => 4, :snv => 9, :sdv => 5]
|
296
|
+
node_1_4.tree_keys.should == Hash[:nv => 9, :dv => 5, :snv => 11, :sdv => 6]
|
297
|
+
end
|
289
298
|
end # tree keys
|
290
299
|
|
291
300
|
should "rekey the entire treestructre" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mm-tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongo_mapper
|
@@ -61,12 +61,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
61
|
- - ! '>='
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
hash: -3601179477307526079
|
64
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
68
|
none: false
|
66
69
|
requirements:
|
67
70
|
- - ! '>='
|
68
71
|
- !ruby/object:Gem::Version
|
69
72
|
version: '0'
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
hash: -3601179477307526079
|
70
76
|
requirements: []
|
71
77
|
rubyforge_project:
|
72
78
|
rubygems_version: 1.8.24
|