سؤال

أنا جديد إلى حد ما بالنسبة ل Ruby، وأنا تكوين IRB. أحب الطباعة الجميلة (تتطلب "PP")، ولكن يبدو من المتاعب دائما كتابة PP لذلك طباعة ذلك تماما. ما أود القيام به هو جعلها طباعة جميلة بشكل افتراضي، لذلك إذا كان لدي Var، فقل "Myvar"، واكتب Myvar، فإنه يتصل تلقائيا ب Outtent_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

هذا الحل الفائض ذات الصلة لديها أيضا مثال على Hirb في العمل.

نصائح أخرى

عند بدء تشغيل IRB، يقرأ .irbrc من الدليل الرئيسي $ الخاص بك. إذا قمت بتحرير (أو إنشاء) هذا الملف وإضافة

require 'pp'

سيتم تحميلها في كل مرة تبدأ فيها تشغيل IRB.

الدفع هذه الإضافة إلى Store_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