Как запустить IRB.start в контексте текущего класса

Я только что проходил через PragProg Continuous Testing With Ruby , где говорится о вызове IRB в контексте текущего класса чтобы проверить код вручную.

Однако они цитируют, что если вы вызываете IRB.start в классе, t независимо от того, к какому xml вы его применяете, он генерирует свои собственные данные).

Результатом этого (с использованием xsltproc) является:

<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://www.w3.org/1999/xhtml" xmlns:set="http://exslt.org/sets">
  <values>
    <node>1</node>
    <node>2</node>
    <node>3</node>
  </values>
  <count>1</count>
</root>

Учитывая, что вызываемый шаблон возвращает три узла, я ожидал "count ($ elements ) "будет 3, но это один. Я подозревал, что, возможно, результаты были заключены в какой-то корневой узел, но любая попытка выполнить count ($ elements / *) или что-то подобное не удалось, я полагаю, потому что $ elements является фрагментом дерева результатов, а не набором узлов.

У меня нет доступа ни к одному из преимуществ exslt или xslt2.0, конечно, есть способ получить количество узлов, хранящихся в переменной?

Я также был бы счастлив посчитать узлы возвращается шаблоном вызова без использования промежуточной переменной, но я не понимаю, как это возможно.

5
задан gfxmonk 15 November 2010 в 23:17
поделиться