Заборонити консолі рейок надрукувати об’єкт у кінці циклу


84

Якщо я, скажімо, прокручую всі екземпляри даної моделі і вивожу щось із кожного, наприкінці irb все одно надрукує весь об’єкт.

Якщо об’єкт у кінцевому підсумку забирає сотні рядків, пройде довгий шлях, перш ніж я побачу, що я насправді шукав. Чи є спосіб вимкнути це в консолі рейок?

Відповіді:


109

Якщо ви взагалі не хочете відключати ехо, ви також можете викликати кілька виразів в одному командному рядку. Відобразиться лише результат останнього виразу.

big_result(input); 0

3
це власне те, що я хотів.
dsp_099

3
Я частоbig_result(input); nil
nroose

101

Телефонуйте, conf.echo = falseі воно не надрукує повернене значення. Це працює для будь-якого сеансу irb, а не лише для консолі Rails.

Якщо ви хочете зробити його постійним, додайте його до конфігурації irb.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc

Що б ви зробили, якби хотіли, щоб це завжди було так за замовчуванням?
Пітер Берг,

@Accipheran Я думаю, якщо помістити його в ініціалізатори Rails, це спрацювало б.
lulalala

Дякую за відповідь, я насправді виявив, що просто кинувши рядок IRB.conf[:ECHO] = false, у моєму файлі .irbrc про це подбали. Це, звичайно, також обертається відлунням у всіх моїх сеансах втручання, але я з цим в порядку.
Пітер Берг,

40

Щоб тимчасово зупинити консоль від друку повернутих значень, ви можете подати nilвиписку в кінці циклу або функції, але перед натисканням кнопки повернення.

record.each do |r|
  puts r.properties
end; nil

Або це може бути також число, якщо ви хочете зменшити введення тексту. Але це може заплутати у сценаріях, яких я не можу придумати.

record.each do |r|
  puts r.properties
end; 0

ти найкращий!
sickrandir
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.