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