Вопрос

Я новичок в Ruby и настраиваю IRB.Мне нравится красивая печать (требуется «pp»), но мне кажется затруднительным всегда набирать pp, чтобы это было красиво напечатано.Что я хотел бы сделать, так это сделать его симпатичным для печати по умолчанию, поэтому, если у меня есть var, скажем, «myvar», и я набираю myvar, он автоматически вызывает Pretty_inspect вместо обычной проверки.С чего мне начать?В идеале я мог бы добавить в свой файл .irbrc метод, который вызывается автоматически.Есть идеи?

Спасибо!

Это было полезно?

Решение

Симпатичная печать объектов по умолчанию в irb – это именно то, что нужно трава было сделано, чтобы сделать. Эти посты объясните, как hirb может преобразовать практически все что угодно в таблицу ascii.Хотя hirb предназначен для настройки для каждого класса, вы можете отображать все объекты в виде таблиц:

# put this in ~/.irbrc
require 'rubygems'
require 'hirb'
Hirb.enable :output=>{'Object'=>{:class=>:auto_table, :ancestor=>true}}

# in irb
>> %w{three blind mice}
+-------+
| value |
+-------+
| three |
| blind |
| mice  |
+-------+
3 rows in set

>> 1..5
+-------+
| value |
+-------+
| 1     |
| 2     |
| 3     |
| 4     |
| 5     |
+-------+
5 rows in set

>> {:a=>1, :b=>2}
+---+---+
| 0 | 1 |
+---+---+
| a | 1 |
| b | 2 |
+---+---+
2 rows in set

Это связанное решение для переполнения также есть пример хирба в действии.

Другие советы

когда irb запускается, он считывает .irbrc из вашего каталога $HOME.Если вы отредактируете (или создадите) этот файл и добавите

require 'pp'

он будет загружаться каждый раз при запуске irb.

Проверить это дополнение в списки методов Pretty_print тоже.Добавьте это в свой .irbrc, и вы сможете сделать:

>> 5.pm
                      %(arg1)         Fixnum
                      &(arg1)         Fixnum
                      *(arg1)         Fixnum
                     **(arg1)         Fixnum
                      +(arg1)         Fixnum
                     +@()             Fixnum(Numeric)
                      -(arg1)         Fixnum
                     -@()             Fixnum
                      /(arg1)         Fixnum
                     <<(arg1)         Fixnum
                     >>(arg1)         Fixnum
                     [](arg1)         Fixnum
                      ^(arg1)         Fixnum
                    abs()             Fixnum
                    ago(arg1, ...)    Fixnum(ActiveSupport::CoreExtensions::Numeric::Time)
               between?(arg1, arg2)   Fixnum(Comparable)
                   byte()             Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes)
                  bytes()             Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top