simple_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/CHANGELOG.md +4 -1
- data/lib/simple_tree.rb +18 -0
- data/lib/simple_tree/version.rb +1 -1
- data/simple_tree.gemspec +1 -1
- data/spec/simple_tree_spec.rb +31 -0
- metadata +10 -10
data/CHANGELOG.md
CHANGED
data/lib/simple_tree.rb
CHANGED
@@ -27,6 +27,11 @@ module SimpleTree
|
|
27
27
|
nodes
|
28
28
|
end
|
29
29
|
|
30
|
+
def self_and_ancestors
|
31
|
+
nodes = [] << self
|
32
|
+
nodes += self.ancestors
|
33
|
+
end
|
34
|
+
|
30
35
|
# Returns the root node of the tree.
|
31
36
|
def root
|
32
37
|
node = self
|
@@ -34,6 +39,13 @@ module SimpleTree
|
|
34
39
|
node
|
35
40
|
end
|
36
41
|
|
42
|
+
def root?
|
43
|
+
self.root == self
|
44
|
+
end
|
45
|
+
|
46
|
+
def child?
|
47
|
+
self.parent != nil
|
48
|
+
end
|
37
49
|
# Returns all siblings of the current node.
|
38
50
|
#
|
39
51
|
# subchild1.siblings # => [subchild2]
|
@@ -55,9 +67,15 @@ module SimpleTree
|
|
55
67
|
nodes
|
56
68
|
end
|
57
69
|
|
70
|
+
def self_and_descendants
|
71
|
+
node = [] << self
|
72
|
+
node += self.descendants
|
73
|
+
end
|
74
|
+
|
58
75
|
def move_to_child_of(parent)
|
59
76
|
self.parent = parent
|
60
77
|
end
|
61
78
|
|
79
|
+
|
62
80
|
end
|
63
81
|
end
|
data/lib/simple_tree/version.rb
CHANGED
data/simple_tree.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = SimpleTree::VERSION
|
8
8
|
s.authors = ["yinghai"]
|
9
9
|
s.email = ["yinghai.zhao@mosaic.com"]
|
10
|
-
s.homepage = ""
|
10
|
+
s.homepage = "http://github.com/mosaicxm/simple-tree"
|
11
11
|
s.summary = %q{simple tree gem}
|
12
12
|
s.description = %q{simple tree gem}
|
13
13
|
|
data/spec/simple_tree_spec.rb
CHANGED
@@ -33,6 +33,13 @@ describe SimpleTree do
|
|
33
33
|
@gc1a.ancestors.should == [@c1,@root]
|
34
34
|
end
|
35
35
|
end
|
36
|
+
|
37
|
+
describe "#self_and_ancestors" do
|
38
|
+
it "should return all ancestors including self" do
|
39
|
+
@gc1a.self_and_ancestors.should == [@gc1a,@c1,@root]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
36
43
|
describe "#root" do
|
37
44
|
it "should return root for descendants" do
|
38
45
|
@gc1a.root.should == @root
|
@@ -65,6 +72,30 @@ describe SimpleTree do
|
|
65
72
|
end
|
66
73
|
end
|
67
74
|
|
75
|
+
describe '#self_and_descendants' do
|
76
|
+
it "should return all descendants including self" do
|
77
|
+
@root.self_and_descendants.should == [@root,@c1,@c2,@gc1a,@gc2a]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '#root?' do
|
82
|
+
it "should return true for root" do
|
83
|
+
@root.root?.should be_true
|
84
|
+
end
|
85
|
+
it "should return false for child" do
|
86
|
+
@c1.root?.should be_false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe '#child?' do
|
91
|
+
it "should return true for root" do
|
92
|
+
@root.child?.should be_false
|
93
|
+
end
|
94
|
+
it "should return false for child" do
|
95
|
+
@c1.child?.should be_true
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
68
99
|
describe '#move_to_child_of' do
|
69
100
|
it "should move a branch to it's new parents" do
|
70
101
|
@gc2a.move_to_child_of(@root)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_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:
|
@@ -13,7 +13,7 @@ date: 2012-03-14 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70157905429500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70157905429500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: with_model
|
27
|
-
requirement: &
|
27
|
+
requirement: &70157905428380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70157905428380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70157906087240 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.0.9
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70157906087240
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sqlite3
|
49
|
-
requirement: &
|
49
|
+
requirement: &70157906086820 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70157906086820
|
58
58
|
description: simple tree gem
|
59
59
|
email:
|
60
60
|
- yinghai.zhao@mosaic.com
|
@@ -73,7 +73,7 @@ files:
|
|
73
73
|
- simple_tree.gemspec
|
74
74
|
- spec/simple_tree_spec.rb
|
75
75
|
- spec/spec_helper.rb
|
76
|
-
homepage:
|
76
|
+
homepage: http://github.com/mosaicxm/simple-tree
|
77
77
|
licenses: []
|
78
78
|
post_install_message:
|
79
79
|
rdoc_options: []
|