modular_tree 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/modular_tree/implementations.rb +6 -2
- data/lib/modular_tree/properties.rb +6 -0
- data/lib/modular_tree/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7ec15f5d6c64bba85a09321d1fcb7c1a22cd91fea24b1db49a2217a4dc73f08
|
4
|
+
data.tar.gz: '08cf720767c7c907e3b7d8007125fafe5a8b51abe8701d4d0a0c5d5736df5ccd'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 171988f0d2150f15a555d035fa7833e53b64784fcbbf3a4d5c3c4dc7ab352ce3aa816dee8a281c802bb236f57951112e0c1b18e451ad62b001e26f66340c3beb
|
7
|
+
data.tar.gz: 23cefa409742a9926b83fb9f1f7aecdae78b78905d7ed765c1f4fdc0044730594d1ffda4ef806c513856b75ac40ba4d788f16c13312521d333d9a73ec0be036f
|
@@ -15,8 +15,6 @@
|
|
15
15
|
#
|
16
16
|
# Internal trees adds a parent/children relation
|
17
17
|
#
|
18
|
-
#
|
19
|
-
#
|
20
18
|
# Only internal trees have parent/child relations. External trees have only branch/branches relations
|
21
19
|
|
22
20
|
module Tree
|
@@ -167,6 +165,12 @@ module Tree
|
|
167
165
|
|
168
166
|
def each_child(&block) = @children.map(&block)
|
169
167
|
def attach(child) = @children << child
|
168
|
+
def detach(arg)
|
169
|
+
key = arg.is_a?(Integer) ? arg : @children.index(arg)
|
170
|
+
child = @children.delete_at(key) or raise ArgumentError, "Can't find object"
|
171
|
+
child.send(:instance_variable_set, :@parent, nil)
|
172
|
+
child
|
173
|
+
end
|
170
174
|
|
171
175
|
# Can be used with any array implementation. +where+ is either an Integer
|
172
176
|
# index or an object
|
@@ -35,6 +35,12 @@ module Tree
|
|
35
35
|
def children = abstract_method
|
36
36
|
def each_child(&block) = children.each(&block)
|
37
37
|
def attach(child) = abstract_method
|
38
|
+
|
39
|
+
# :call-seq:
|
40
|
+
# detach(key)
|
41
|
+
# detach(child)
|
42
|
+
#
|
43
|
+
def detach(arg) = abstract_method
|
38
44
|
end
|
39
45
|
|
40
46
|
# TODO
|
data/lib/modular_tree/version.rb
CHANGED