rubytree 0.3.0 → 0.3.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/ChangeLog +8 -0
- data/README +4 -4
- data/Rakefile +45 -28
- data/TAGS +86 -63
- data/lib/tree.rb +4 -4
- data/test/testtree.rb +4 -4
- metadata +4 -4
data/ChangeLog
CHANGED
@@ -1,5 +1,13 @@
|
|
1
|
+
2007-07-17 Anupam Sengupta <anupamsg@gmail.com>
|
2
|
+
|
3
|
+
* lib/tree.rb (Tree::TreeNode::parentage): Renamed 'ancestors'
|
4
|
+
method to 'parentage' to avoid clobbering Module.ancestors
|
5
|
+
|
1
6
|
2007-07-16 Anupam Sengupta <anupamsg@gmail.com>
|
2
7
|
|
8
|
+
* Rakefile: Added an optional rtags task to generate TAGS file for
|
9
|
+
Emacs.
|
10
|
+
|
3
11
|
* lib/tree.rb (Tree::TreeNode): Added navigation methods for
|
4
12
|
siblings and children. Also added some convenience methods.
|
5
13
|
|
data/README
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
= Rubytree 0.3.
|
1
|
+
= Rubytree 0.3.1
|
2
2
|
|
3
3
|
(c) 2006, 2007 Anupam Sengupta
|
4
4
|
http://rubytree.rubyforge.org
|
5
5
|
|
6
|
-
Document Revision: $Revision: 1.
|
6
|
+
Document Revision: $Revision: 1.7 $ by $Author: anupamsg $
|
7
7
|
|
8
8
|
== License
|
9
9
|
|
@@ -66,7 +66,7 @@ the text mode ri documentation:
|
|
66
66
|
|
67
67
|
Documentation on the web is available at:
|
68
68
|
|
69
|
-
|
69
|
+
http://rubytree.rubyforge.org/rdoc/
|
70
70
|
|
71
71
|
== Example
|
72
72
|
|
@@ -114,7 +114,7 @@ Documentation on the web is available at:
|
|
114
114
|
|
115
115
|
Rubytree is licensed under BSD license.
|
116
116
|
|
117
|
-
Copyright (c)
|
117
|
+
Copyright (c) 2006, 2007 Anupam Sengupta
|
118
118
|
|
119
119
|
All rights reserved.
|
120
120
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Rakefile
|
2
2
|
#
|
3
|
-
# $Revision: 1.
|
3
|
+
# $Revision: 1.16 $ by $Author: anupamsg $
|
4
4
|
# $Name: $
|
5
5
|
#
|
6
6
|
# Copyright (c) 2006, 2007 Anupam Sengupta
|
@@ -42,22 +42,24 @@ require 'rake/rdoctask'
|
|
42
42
|
desc "Default Task"
|
43
43
|
task :default => :gem
|
44
44
|
|
45
|
-
PKG_VERSION = '0.3.
|
45
|
+
PKG_VERSION = '0.3.1'
|
46
46
|
PKG_FILES = FileList[
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
'[A-Z]*',
|
48
|
+
'lib/**/*.rb',
|
49
|
+
'test/**/*.rb'
|
50
|
+
]
|
51
51
|
|
52
52
|
spec = Gem::Specification.new do |s|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
53
|
+
s.name = "rubytree"
|
54
|
+
s.version = PKG_VERSION
|
55
|
+
s.platform = Gem::Platform::RUBY
|
56
|
+
s.author = "Anupam Sengupta"
|
57
|
+
s.email = "anupamsg@gmail.com"
|
58
|
+
s.homepage = "http://rubytree.rubyforge.org/"
|
59
|
+
s.rubyforge_project = 'rubytree'
|
60
|
+
s.summary = "Ruby implementation of the Tree data structure."
|
59
61
|
|
60
|
-
|
62
|
+
s.description = <<-END
|
61
63
|
Provides a generic tree data-structure with ability to
|
62
64
|
store keyed node-elements in the tree. The implementation
|
63
65
|
mixes in the Enumerable module.
|
@@ -65,37 +67,52 @@ spec = Gem::Specification.new do |s|
|
|
65
67
|
Website: http://rubytree.rubyforge.org/
|
66
68
|
END
|
67
69
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
s.has_rdoc = true
|
71
|
+
s.extra_rdoc_files = ['README', 'COPYING', 'ChangeLog']
|
72
|
+
s.autorequire = "tree"
|
73
|
+
s.files = PKG_FILES.to_a
|
74
|
+
s.test_files = Dir.glob('test/test*.rb')
|
73
75
|
end
|
74
76
|
|
75
77
|
Rake::GemPackageTask.new(spec) do |pkg|
|
76
|
-
|
77
|
-
|
78
|
+
pkg.need_zip = true
|
79
|
+
pkg.need_tar = true
|
78
80
|
end
|
79
81
|
|
80
82
|
Rake::TestTask.new do |t|
|
81
|
-
|
82
|
-
|
83
|
-
|
83
|
+
t.libs << "test"
|
84
|
+
t.test_files = FileList['test/test*.rb']
|
85
|
+
t.verbose = true
|
84
86
|
end
|
85
87
|
|
86
88
|
Rake::RDocTask.new do |rd|
|
87
|
-
|
88
|
-
|
89
|
+
rd.rdoc_files.include("README", "COPYING", "ChangeLog", "lib/**/*.rb")
|
90
|
+
rd.title = "Rubytree Documentation"
|
89
91
|
end
|
90
92
|
|
91
93
|
Rake::RDocTask.new(:rdoc_www) do |rd|
|
92
|
-
|
93
|
-
|
94
|
-
|
94
|
+
rd.rdoc_files.include("README", "COPYING", "ChangeLog", "lib/**/*.rb")
|
95
|
+
rd.title = "Rubytree Documentation"
|
96
|
+
rd.template = "rubytree-template.rb"
|
95
97
|
end
|
96
98
|
|
99
|
+
# Optional TAGS Task.
|
100
|
+
# Needs https://rubyforge.org/projects/rtagstask/
|
101
|
+
begin
|
102
|
+
require 'rtagstask'
|
103
|
+
RTagsTask.new do |rd|
|
104
|
+
rd.vi = false
|
105
|
+
end
|
106
|
+
rescue LoadError
|
107
|
+
end
|
97
108
|
|
98
109
|
# $Log: Rakefile,v $
|
110
|
+
# Revision 1.16 2007/07/17 05:34:03 anupamsg
|
111
|
+
# Added an optional tags Rake-task for generating the TAGS file for Emacs.
|
112
|
+
#
|
113
|
+
# Revision 1.15 2007/07/17 04:42:45 anupamsg
|
114
|
+
# Minor fixes to the Rakefile.
|
115
|
+
#
|
99
116
|
# Revision 1.14 2007/07/17 03:39:28 anupamsg
|
100
117
|
# Moved the CVS Log keyword to end of the files.
|
101
118
|
#
|
data/TAGS
CHANGED
@@ -1,66 +1,89 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
module Tree::Tree
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
2
|
+
lib/tree.rb,2410
|
3
|
+
module Tree::Tree48,2020
|
4
|
+
class TreeNode::Tree::TreeNode103,3802
|
5
|
+
attr_reader :content, :name, :parent::Tree::TreeNode#content106,3845
|
6
|
+
attr_reader :content, :name, :parent::Tree::TreeNode#name106,3845
|
7
|
+
attr_reader :content, :name, :parent::Tree::TreeNode#parent106,3845
|
8
|
+
attr_writer :content::Tree::TreeNode#content107,3886
|
9
|
+
def initialize::Tree::TreeNode#Tree::TreeNode.new118,4158
|
10
|
+
def to_s::Tree::TreeNode#to_s132,4447
|
11
|
+
def ancestors::Tree::TreeNode#ancestors144,4836
|
12
|
+
def parent=::Tree::TreeNode#parent=159,5172
|
13
|
+
def <<::Tree::TreeNode#<<167,5408
|
14
|
+
def add::Tree::TreeNode#add174,5667
|
15
|
+
def remove!::Tree::TreeNode#remove!189,6080
|
16
|
+
def removeFromParent!::Tree::TreeNode#removeFromParent!198,6356
|
17
|
+
def removeAll!::Tree::TreeNode#removeAll!203,6478
|
18
|
+
def hasContent?::Tree::TreeNode#hasContent?213,6692
|
19
|
+
def setAsRoot!::Tree::TreeNode#setAsRoot!218,6800
|
20
|
+
def isRoot?::Tree::TreeNode#isRoot?224,6966
|
21
|
+
def hasChildren?::Tree::TreeNode#hasChildren?229,7082
|
22
|
+
def isLeaf?::Tree::TreeNode#isLeaf?235,7220
|
23
|
+
def children::Tree::TreeNode#children241,7385
|
24
|
+
def firstChild::Tree::TreeNode#firstChild251,7613
|
25
|
+
def lastChild::Tree::TreeNode#lastChild257,7754
|
26
|
+
def each::Tree::TreeNode#each263,7948
|
27
|
+
def each_leaf::Tree::TreeNode#each_leaf270,8204
|
28
|
+
def []::Tree::TreeNode#[]279,8570
|
29
|
+
def size::Tree::TreeNode#size291,8848
|
30
|
+
def length::Tree::TreeNode#length296,8968
|
31
|
+
def printTree::Tree::TreeNode#printTree301,9057
|
32
|
+
def root::Tree::TreeNode#root321,9553
|
33
|
+
def firstSibling::Tree::TreeNode#firstSibling329,9752
|
34
|
+
def isFirstSibling?::Tree::TreeNode#isFirstSibling?338,9920
|
35
|
+
def lastSibling::Tree::TreeNode#lastSibling344,10071
|
36
|
+
def isLastSibling?::Tree::TreeNode#isLastSibling?353,10234
|
37
|
+
def siblings::Tree::TreeNode#siblings360,10453
|
38
|
+
def isOnlyChild?::Tree::TreeNode#isOnlyChild?374,10826
|
39
|
+
def nextSibling::Tree::TreeNode#nextSibling380,10989
|
40
|
+
def previousSibling::Tree::TreeNode#previousSibling388,11221
|
41
|
+
def <=>::Tree::TreeNode#<=>397,11486
|
42
|
+
def freezeTree!::Tree::TreeNode#freezeTree!403,11628
|
43
|
+
def createDumpRep::Tree::TreeNode#createDumpRep408,11760
|
44
|
+
def _dump::Tree::TreeNode#_dump414,11940
|
45
|
+
def TreeNode.loadDumpRep::Tree::TreeNode.loadDumpRep421,12130
|
46
|
+
def TreeNode._load::Tree::TreeNode._load439,12707
|
35
47
|
|
36
|
-
|
37
|
-
class Person::Person
|
38
|
-
attr_reader :first, :last
|
39
|
-
attr_reader :first, :last
|
40
|
-
attr_writer :first, :last
|
41
|
-
attr_writer :first, :last
|
42
|
-
def initialize::Person#Person.new
|
43
|
-
def to_s::Person#to_s
|
48
|
+
test/person.rb,322
|
49
|
+
class Person::Person37,1683
|
50
|
+
attr_reader :first, :last::Person#first38,1700
|
51
|
+
attr_reader :first, :last::Person#last38,1700
|
52
|
+
attr_writer :first, :last::Person#first39,1730
|
53
|
+
attr_writer :first, :last::Person#last39,1730
|
54
|
+
def initialize::Person#Person.new40,1760
|
55
|
+
def to_s::Person#to_s45,1853
|
44
56
|
|
45
|
-
|
46
|
-
class TC_TreeTest::TC_TreeTest
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
57
|
+
test/testtree.rb,1847
|
58
|
+
class TC_TreeTest::TC_TreeTest43,1728
|
59
|
+
def setup::TC_TreeTest#setup45,1781
|
60
|
+
def loadChildren::TC_TreeTest#loadChildren73,2687
|
61
|
+
def teardown::TC_TreeTest#teardown79,2783
|
62
|
+
def test_root_setup::TC_TreeTest#test_root_setup83,2828
|
63
|
+
def test_root::TC_TreeTest#test_root97,3464
|
64
|
+
def test_firstSibling::TC_TreeTest#test_firstSibling105,3691
|
65
|
+
def test_isFirstSibling::TC_TreeTest#test_isFirstSibling115,4169
|
66
|
+
def test_isLastSibling::TC_TreeTest#test_isLastSibling125,4577
|
67
|
+
def test_lastSibling::TC_TreeTest#test_lastSibling135,4973
|
68
|
+
def test_siblings::TC_TreeTest#test_siblings145,5442
|
69
|
+
def test_isOnlyChild?::TC_TreeTest#test_isOnlyChild?164,6029
|
70
|
+
def test_nextSibling::TC_TreeTest#test_nextSibling173,6341
|
71
|
+
def test_previousSibling::TC_TreeTest#test_previousSibling182,6707
|
72
|
+
def test_add::TC_TreeTest#test_add191,7091
|
73
|
+
def test_remove::TC_TreeTest#test_remove210,7573
|
74
|
+
def test_removeAll::TC_TreeTest#test_removeAll237,8283
|
75
|
+
def test_removeFromParent::TC_TreeTest#test_removeFromParent246,8527
|
76
|
+
def test_children::TC_TreeTest#test_children263,9157
|
77
|
+
def test_firstChild::TC_TreeTest#test_firstChild289,10018
|
78
|
+
def test_lastChild::TC_TreeTest#test_lastChild298,10293
|
79
|
+
def test_find::TC_TreeTest#test_find307,10558
|
80
|
+
def test_ancestors::TC_TreeTest#test_ancestors321,11093
|
81
|
+
def test_each::TC_TreeTest#test_each329,11377
|
82
|
+
def test_each_leaf::TC_TreeTest#test_each_leaf346,11999
|
83
|
+
def test_parent::TC_TreeTest#test_parent360,12469
|
84
|
+
def test_indexed_access::TC_TreeTest#test_indexed_access369,12850
|
85
|
+
def test_printTree::TC_TreeTest#test_printTree377,13120
|
86
|
+
def test_dump::TC_TreeTest#test_dump383,13191
|
87
|
+
def test_collect::TC_TreeTest#test_collect399,13728
|
88
|
+
def test_freezeTree::TC_TreeTest#test_freezeTree408,13947
|
89
|
+
def test_content::TC_TreeTest#test_content417,14211
|
data/lib/tree.rb
CHANGED
@@ -141,17 +141,17 @@ module Tree
|
|
141
141
|
|
142
142
|
# Returns an array of ancestors in reversed order (the first element is the
|
143
143
|
# immediate parent). Returns nil if this is a root node.
|
144
|
-
def
|
144
|
+
def parentage
|
145
145
|
return nil if isRoot?
|
146
146
|
|
147
|
-
|
147
|
+
parentageArray = []
|
148
148
|
prevParent = self.parent
|
149
149
|
while (prevParent)
|
150
|
-
|
150
|
+
parentageArray << prevParent
|
151
151
|
prevParent = prevParent.parent
|
152
152
|
end
|
153
153
|
|
154
|
-
|
154
|
+
parentageArray
|
155
155
|
end
|
156
156
|
|
157
157
|
# Protected method to set the parent node.
|
data/test/testtree.rb
CHANGED
@@ -318,12 +318,12 @@ class TC_TreeTest < Test::Unit::TestCase
|
|
318
318
|
assert_nil(foundNode, "The node should not be found")
|
319
319
|
end
|
320
320
|
|
321
|
-
def
|
321
|
+
def test_parentage
|
322
322
|
loadChildren
|
323
323
|
|
324
|
-
assert_nil(@root.
|
325
|
-
assert_equal([@root], @child1.
|
326
|
-
assert_equal([@child3, @root], @child4.
|
324
|
+
assert_nil(@root.parentage, "Root does not have any parentage")
|
325
|
+
assert_equal([@root], @child1.parentage, "Child1 has Root as its parent")
|
326
|
+
assert_equal([@child3, @root], @child4.parentage, "Child4 has Child3 and Root as ancestors")
|
327
327
|
end
|
328
328
|
|
329
329
|
def test_each
|
metadata
CHANGED
@@ -3,14 +3,14 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rubytree
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date: 2007-07-
|
6
|
+
version: 0.3.1
|
7
|
+
date: 2007-07-17 00:00:00 -07:00
|
8
8
|
summary: Ruby implementation of the Tree data structure.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: anupamsg@gmail.com
|
12
|
-
homepage:
|
13
|
-
rubyforge_project:
|
12
|
+
homepage: http://rubytree.rubyforge.org/
|
13
|
+
rubyforge_project: rubytree
|
14
14
|
description: "Provides a generic tree data-structure with ability to store keyed node-elements in the tree. The implementation mixes in the Enumerable module. Website: http://rubytree.rubyforge.org/"
|
15
15
|
autorequire: tree
|
16
16
|
default_executable:
|