puts
является синонимом $stdout.puts
. $ stdout - это класс IO
, поэтому посмотрите на документацию для IO.puts :
Записывает данные объекты в ios, как при печати IO #. Записывает разделитель записей (как правило, новую строку) после тех, которые еще не заканчиваются последовательностью новой строки. Если вызывается с аргументом массива, записывает каждый элемент в новую строку.
blockquote>Это означает, что метод
puts
предназначен для записи нескольких строк вывода. Таким образом, он пытается вызвать методto_ary
для объекта и еслиto_ary
определен, затем печатает каждый элемент возвращенногоArray
в новой строке, иначеputs
вызывает методto_s
.
to_ary
внутреннее использование в документации Ruby действительно недостаточно хорошо документировано (Matz указывает на это в книге языка программирования Ruby ).Методы
p
, с другой стороны, не вызываютto_ary
, толькоto_s
.Sidenote : Интересно, что
to_ary
должен возвращать реальныйArray
, а не объект, определяющий методeach
или что-то еще:class Test def to_ary 10.downto(1) end end puts Test.new #TypeError: can't convert Test to Array (Test#to_ary gives Enumerator) # from (irb):28:in `puts' # from (irb):28:in `puts' # from (irb):28
Решено с помощью медиа-запросов print css!
ChromeVox добавляет разметку и стили в body
страницы, которая выглядит следующим образом:
<div aria-hidden="true" class="cvox_indicator_container ...more classes...">
...more html markup...
</div>
Поэтому я обновил свой Глобальная таблица стилей CSS включает в себя следующее:
@media print {
.cvox_indicator_container {
display: none;
}
}
, который работал отлично.
Затем я подумал, что хочу убедиться, что это никогда не изменится, даже если ChromeVox изменил свой CSS для большей специфичности.
Затем я обновил CSS:
@media print {
html body div.cvox_indicator_container {
display: none !important;
}
}
Примечание: Это может быть излишним, но, безусловно, имеет больше специфичности.
В идеале команда ChomeVox добавит что-то вроде этого решения в свой код. Я пытался найти их репозиторий с открытым исходным кодом… подошел близко, но не смог. Halp?