الفرق بين المراجعتين ل"Ruby/TracePoint/new"
< Ruby | TracePoint
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> الخاص بالصنف <code>TracePoint</code> في روبي}}</noinclude> تصنيف: Ruby تصن...') |
جميل-بيلوني (نقاش | مساهمات) ط (مراجعة وتدقيق.) |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
− | <noinclude>{{DISPLAYTITLE: التابع <code>new | + | <noinclude>{{DISPLAYTITLE: التابع <code>TracePoint.new</code> في روبي}}</noinclude> |
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby TracePoint]] | [[تصنيف: Ruby TracePoint]] | ||
− | يُعيد التابع <code>new</code> [[Ruby/TracePoint| | + | يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقبً]]ا جديدًا غير مفعَّل افتراضيًّا. |
− | + | راجع صفحة الصنف <code>[[Ruby/TracePoint|TracePoint]]</code> للتعرف على الأحداث الممكنة ولمزيد من المعلومات. | |
− | + | يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code>. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | يجب إعطاء | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj</syntaxhighlight> | <syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>events</code>=== | ===<code>events</code>=== | ||
− | ==القيمة | + | أحداث يراد إنشاء تعقب لها. |
− | ==أمثلة== | + | |
− | + | ==القيمة المعادة== | |
− | <syntaxhighlight lang="ruby">trace = TracePoint.new(:call) do |tp| | + | يعاد [[Ruby/TracePoint|متعقبٌ]] جديدٌ للأحداث <code>events</code>. |
+ | |||
+ | == أمثلة == | ||
+ | من أجل تفعيل التعقب بعد إنشائه باستعمال التابع <code>new</code>، يجب عليك استخدام التابع <code>[[Ruby/TracePoint/enable|enable]]</code>:<syntaxhighlight lang="ruby">trace = TracePoint.new(:call) do |tp| | ||
p [tp.lineno, tp.defined_class, tp.method_id, tp.event] | p [tp.lineno, tp.defined_class, tp.method_id, tp.event] | ||
end | end | ||
#=> #<TracePoint:disabled> | #=> #<TracePoint:disabled> | ||
+ | |||
trace.enable | trace.enable | ||
#=> false | #=> false | ||
+ | |||
puts "Hello, TracePoint!" | puts "Hello, TracePoint!" | ||
# ... | # ... | ||
# [48, IRB::Notifier::AbstractNotifier, :printf, :call] | # [48, IRB::Notifier::AbstractNotifier, :printf, :call] | ||
− | # ... | + | # ...</syntaxhighlight>إن أردت إلغاء التعقب، عليك استخدام التابع <code>[[Ruby/TracePoint/disable|disable]]</code>.<syntaxhighlight lang="ruby">trace.disable |
− | + | </syntaxhighlight>إذا لم يتم تضمين التابع <code>[[Ruby/TracePoint/trace|trace]]</code> في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | |
− | + | p tp.raised_exception | |
+ | end | ||
+ | #=> RuntimeError: 'raised_exception' not supported by this event | ||
+ | |||
+ | </syntaxhighlight>إذا تم استدعاء التابع <code>trace</code> خارج كتلة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | ||
+ | $tp = tp | ||
+ | end | ||
+ | $tp.lineno #=> access from outside (RuntimeError) | ||
+ | </syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | ||
+ | ==انظر أيضًا== | ||
+ | * التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]]. | ||
==مصادر== | ==مصادر== | ||
− | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم | + | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-c-new قسم التابع new في الصنف TracePoint في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 05:43، 8 ديسمبر 2018
يُعيد التابع new
متعقبًا جديدًا غير مفعَّل افتراضيًّا.
راجع صفحة الصنف TracePoint
للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء ArgumentError
.
البنية العامة
new(*events) { |obj| block } → obj
المعاملات
events
أحداث يراد إنشاء تعقب لها.
القيمة المعادة
يعاد متعقبٌ جديدٌ للأحداث events
.
أمثلة
من أجل تفعيل التعقب بعد إنشائه باستعمال التابع new
، يجب عليك استخدام التابع enable
:
trace = TracePoint.new(:call) do |tp|
p [tp.lineno, tp.defined_class, tp.method_id, tp.event]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
puts "Hello, TracePoint!"
# ...
# [48, IRB::Notifier::AbstractNotifier, :printf, :call]
# ...
إن أردت إلغاء التعقب، عليك استخدام التابع disable
.
trace.disable
إذا لم يتم تضمين التابع trace
في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء RuntimeError
.
TracePoint.trace(:line) do |tp|
p tp.raised_exception
end
#=> RuntimeError: 'raised_exception' not supported by this event
إذا تم استدعاء التابع trace
خارج كتلة، فسيُطلق الاستثناء RuntimeError
.
TracePoint.trace(:line) do |tp|
$tp = tp
end
$tp.lineno #=> access from outside (RuntimeError)
كما يُحظر الدخول من المهام الفرعية الأخرى.