order_tree 0.0.2 → 0.0.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/lib/order_tree/order_tree_node.rb +13 -1
- data/lib/order_tree/version.rb +1 -1
- data/spec/order_tree_spec.rb +21 -1
- metadata +10 -10
@@ -16,7 +16,19 @@ module OrderTree
|
|
16
16
|
self.prev.next = next_node if self.prev
|
17
17
|
|
18
18
|
if self.tree.root.first.equal? self
|
19
|
-
|
19
|
+
if next_node
|
20
|
+
self.tree.root.instance_eval do
|
21
|
+
self.first = next_node
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
if self.tree.root.last.equal? self
|
27
|
+
if prev_node
|
28
|
+
self.tree.root.instance_eval do
|
29
|
+
self.last = prev_node
|
30
|
+
end
|
31
|
+
end
|
20
32
|
end
|
21
33
|
|
22
34
|
# try this so that the node can remove
|
data/lib/order_tree/version.rb
CHANGED
data/spec/order_tree_spec.rb
CHANGED
@@ -41,7 +41,7 @@ describe OrderTree::UniqueProxy do
|
|
41
41
|
proxy(5).inspect.should eq "5"
|
42
42
|
OrderTree::UniqueProxy.verbose_inspect = true
|
43
43
|
p = proxy(5)
|
44
|
-
p.inspect.to_s.should match(/#<UniqueProxy:(.*?)\s=>\s5>/)
|
44
|
+
p.inspect.to_s.should match(/#<OrderTree::UniqueProxy:(.*?)\s=>\s5>/)
|
45
45
|
p.to_s.should == "proxy(5)"
|
46
46
|
OrderTree::UniqueProxy.verbose_inspect = false
|
47
47
|
p2 = eval(p.to_s)
|
@@ -191,6 +191,26 @@ describe OrderTree::OrderTree do
|
|
191
191
|
v.should eq 4
|
192
192
|
end
|
193
193
|
|
194
|
+
it "can overwrite the last node without losing it" do
|
195
|
+
ot = OrderTree::OrderTree.new({:first => { :a => 'a', :b => 'c'}, :second => { :a => 'a', :b => 'b'}})
|
196
|
+
last_path = ot.each_path.to_a.last
|
197
|
+
ot[*last_path] = "b"
|
198
|
+
|
199
|
+
ot.each_path.to_a.last
|
200
|
+
ot[*last_path].should eq "b"
|
201
|
+
end
|
202
|
+
|
203
|
+
it "can overwrite the first node without losing it" do
|
204
|
+
ot = OrderTree::OrderTree.new({:first => { :a => 'a', :b => 'c'}, :second => { :a => 'a', :b => 'b'}})
|
205
|
+
|
206
|
+
first_path, second_path = ot.each_path.to_a[0..1]
|
207
|
+
ot[*first_path] = "old_first"
|
208
|
+
|
209
|
+
# is no last
|
210
|
+
ot[*ot.each_path.to_a.last].should eq "old_first"
|
211
|
+
ot.each_path.to_a.first.should eq second_path
|
212
|
+
end
|
213
|
+
|
194
214
|
it "does == comparison" do
|
195
215
|
ot = OrderTree::OrderTree.new @testhash
|
196
216
|
ot2 = OrderTree::OrderTree.new @testhash
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: order_tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-07-
|
12
|
+
date: 2011-07-26 00:00:00.000000000 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &3691050 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *3691050
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: simplecov
|
28
|
-
requirement: &
|
28
|
+
requirement: &3690830 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *3690830
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: ruby-prof
|
39
|
-
requirement: &
|
39
|
+
requirement: &3690610 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *3690610
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: ruby-debug19
|
50
|
-
requirement: &
|
50
|
+
requirement: &3690400 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *3690400
|
59
59
|
description: Use OrderTree when you need both insertion order access and nested hash
|
60
60
|
path style access
|
61
61
|
email:
|