module ActsAsTree::TreeWalker

def self.extended(mod)

def self.extended(mod)
  mod.class_eval do
    def walk_tree(options = {}, &block)
      algorithm = options.fetch :algorithm, :dfs
      where = options.fetch :where, {}
      self.class.send("walk_tree_#{algorithm}", where, self, &block)
    end
  end
end