lib/basic_tree.rb in basic_tree-0.1.1 vs lib/basic_tree.rb in basic_tree-1.0.0

- old
+ new

@@ -1,23 +1,23 @@ class BasicTree include Enumerable - VERSION = "0.1.1" + VERSION = "1.0.0" - def initialize(object, &block) + def initialize(object, parent = nil, &block) self.object = object - yield self if block_given? + if parent + self.parent = parent + parent.children << self + end + instance_eval(&block) if block_given? end attr_accessor :object, :parent def add(object, &block) - self.class.new(object) do |child| - children << child - child.parent = self - yield child if block_given? - end + self.class.new(object, self, &block) end def path ancestors << self end \ No newline at end of file