rogdl 0.1.6 → 0.1.7

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.
Files changed (3) hide show
  1. data/lib/node.rb +17 -1
  2. data/test/test_node.rb +22 -0
  3. metadata +1 -1
data/lib/node.rb CHANGED
@@ -3,12 +3,28 @@ module Rogdl
3
3
  include Enumerable
4
4
  include Comparable
5
5
 
6
- attr_accessor :gname, :gparent
6
+ attr_accessor :gname
7
7
 
8
8
  def initialize(aName)
9
9
  self.gname = aName
10
10
  end
11
11
 
12
+ def gparent(arg=1)
13
+ return @gparent if arg == 1
14
+ if arg.is_a?(Fixnum)
15
+ return self if arg == 0
16
+ return @gparent.gparent(arg-1)
17
+ end
18
+ if arg.is_a?(String)
19
+ return @gparent if @gparent.nil? || @gparent.gname == arg
20
+ return @gparent.gparent(arg)
21
+ end
22
+ end
23
+
24
+ def gparent=(aNode)
25
+ @gparent = aNode
26
+ end
27
+
12
28
  def subs(key,value)
13
29
  @@subs ||= {}
14
30
  @@subs[key] = value
data/test/test_node.rb CHANGED
@@ -235,6 +235,28 @@ class TestNode < Test::Unit::TestCase
235
235
 
236
236
  end
237
237
 
238
+ def test_gparent_accessor
239
+ a = Node.new('a')
240
+ a.gparent = Node.new('b')
241
+ assert_equal 'b', a.gparent.gname
242
+ end
243
+
244
+ def test_gparent
245
+ a = Node.new('a')
246
+ b = Node.new('b')
247
+ c = Node.new('c')
248
+ a.add(b)
249
+ b.add(c)
250
+ assert_equal 'a', c.gparent(2).gname
251
+ assert_equal 'b', c.gparent(1).gname
252
+ assert_equal 'c', c.gparent(0).gname
253
+
254
+ assert_equal 'a', c.gparent('a').gname
255
+ assert_equal 'b', c.gparent('b').gname
256
+ assert_equal nil, c.gparent('c')
257
+
258
+ end
259
+
238
260
 
239
261
 
240
262
 
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: rogdl
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.6
6
+ version: 0.1.7
7
7
  date: 2007-08-22 00:00:00 -05:00
8
8
  summary: Rogdl is a package for parsing OGDL files.
9
9
  require_paths: