الفرق بين المراجعتين ل"Ruby/TracePoint/new"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>TracePoint</code> في روبي}}</noinclude> تصنيف: Ruby تصن...')
 
ط (مراجعة وتدقيق.)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>TracePoint</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: التابع <code>TracePoint.new‎</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby TracePoint]]
 
[[تصنيف: Ruby TracePoint]]
يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقب]]ا<code>[[Ruby/TracePoint|TracePoint]]</code> جديدًا، غير متاح افتراضيا.
+
يُعيد التابع <code>new</code> [[Ruby/TracePoint|متعقبً]]ا جديدًا غير مفعَّل افتراضيًّا.
  
من أجل إتاحة التعقب، يجب عليك استخدام <code>[[Ruby/TracePoint/enable|#enable]]</code>
+
راجع صفحة الصنف <code>[[Ruby/TracePoint|TracePoint]]</code> للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
  
 
+
يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code>.
 
 
إن أردت إلغاء التعقب، عليك استخدام <code>[[Ruby/TracePoint/disable|#disable]]</code>
 
 
 
 
 
 
 
راجع صفحة <code>[[Ruby/TracePoint/label-Events|Events at TracePoint]]</code> للتعرف على الأحداث الممكنة ولمزيد من المعلومات.
 
 
 
يجب إعطاء كتلة، وإلا سيُطلق <code>[[Ruby/ArgumentError|ArgumentError]]</code>.
 
 
 
إذا لم يتم تضمين التابع trace في مرشح الأحداث المعطاة، سيُطلق الاستثناء <code>[[Ruby/RuntimeError|RuntimeError]]</code>.
 
 
 
 
 
 
 
إذا تم استدعاء التابع trace خارج كتلة، فسيُطلق <code>[[Ruby/RuntimeError|RuntimeError]]</code>.
 
 
 
 
 
 
 
كما يُحظر الدخول من [[Ruby/Thread|المهام الفرعية]].
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">new(*events) { |obj| block } → obj‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>events‎</code>===
 
===<code>events‎</code>===
==القيمة المُعادة==
+
أحداث يراد إنشاء تعقب لها.
==أمثلة==
+
 
مثال على استخدام التابع <code>new‎</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>
+
# ...</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|
* التابع <code>[[Ruby/TracePoint/stat|stat]]</code>: يُعيد التابع <code>stat</code> المعلومات الداخلية لل[[Ruby/TracePoint|متعقب]] <code>[[Ruby/TracePoint|TracePoint]]</code>.
+
    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 قسم التابع new‎ في الصنف TracePoint‎ في توثيق روبي الرسمي.]
+
*[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)

كما يُحظر الدخول من المهام الفرعية الأخرى.

انظر أيضًا

مصادر