У меня вопрос о рубиновых драгоценных камнях. Я пишу код в рубине, и я хочу использовать дерево. Я решил использовать класс Tree::TreeNode
. См. Здесь http://www.rubydoc.info/github/evolve75/RubyTree/Tree/TreeNode для документации.Методы из дерева :: TreeNode не работает
Это мой первый раз, используя драгоценный камень. Я запустил sudo gem install tree
в терминал и добавил require 'tree'
в начало моего рубинового файла. По большей части это работает. Я могу инициализировать узлы, и большинство методов работают. Однако некоторые методы, такие как #each_leaf
и #children
, не работают. Вот пример кода:
require 'tree'
node1 = Tree::TreeNode.new('node1',1)
node2 = Tree::TreeNode.new('node2',2)
node1.add(node2)
node1.each_leaf { |node| puts "name: #{node.name}, content: #{node.content}"}
Когда я запускаю его я получаю следующее сообщение об ошибке:
test.rb:5:in `<main>': undefined method `each_leaf' for #<Tree::TreeNode:0x007fc2a905e560> (NoMethodError)
, но когда я запускаю код с each_leaf
заменен each
он отлично работает (я, конечно, получить информацию для узлы 1 и 2, тогда как если он работал each_leaf
, я должен получить только информацию для узла 2).
Просмотрев документацию для TreeNode
Я заметил, что все методы, которые не работают для меня, перечислены рядом с Tree::TreeNode+
, а не Tree::TreeNode
. Я не смог понять, что это значит. Нужно ли мне что-то делать или устанавливать какой-либо другой камень, чтобы получить эти методы? Спасибо за любую помощь!
Я задаюсь вопросом, является ли драгоценный камень 'tree' драгоценным камнем, который вы ищете. Метод существует, когда я смотрю на источник на github и существует там годами. Я не могу понять, что означает '+' на rubydoc.info. –