الفرق بين المراجعتين ل"Ruby/TracePoint/new"
< Ruby | TracePoint
اذهب إلى التنقل
اذهب إلى البحث
جميل-بيلوني (نقاش | مساهمات) ط (مراجعة وتدقيق.) |
|||
سطر 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> | ||
+ | ==المعاملات== | ||
+ | ===<code>events</code>=== | ||
+ | أحداث يراد إنشاء تعقب لها. | ||
+ | |||
+ | ==القيمة المعادة== | ||
+ | يعاد [[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 | ||
سطر 16: | سطر 29: | ||
# ... | # ... | ||
# [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/disable|disable]]</code>.<syntaxhighlight lang="ruby">trace.disable |
− | </syntaxhighlight> | + | </syntaxhighlight>إذا لم يتم تضمين التابع <code>[[Ruby/TracePoint/trace|trace]]</code> في مرشح الأحداث (events filter) المعطاة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| |
− | |||
− | |||
− | |||
− | إذا لم يتم تضمين التابع <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 | p tp.raised_exception | ||
end | end | ||
#=> RuntimeError: 'raised_exception' not supported by this event | #=> RuntimeError: 'raised_exception' not supported by this event | ||
− | </syntaxhighlight>إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| | + | </syntaxhighlight>إذا تم استدعاء التابع <code>trace</code> خارج كتلة، فسيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.<syntaxhighlight lang="ruby">TracePoint.trace(:line) do |tp| |
$tp = tp | $tp = tp | ||
end | end | ||
$tp.lineno #=> access from outside (RuntimeError) | $tp.lineno #=> access from outside (RuntimeError) | ||
</syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | </syntaxhighlight>كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]] الأخرى. | ||
− | + | ==انظر أيضًا== | |
− | + | * التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==انظر | ||
− | * التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد | ||
==مصادر== | ==مصادر== | ||
− | *[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)
كما يُحظر الدخول من المهام الفرعية الأخرى.