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

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

مراجعة 22:34، 7 نوفمبر 2018

يُعيد التابع 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

راجع صفحة الصنف TracePoint للتعرف على الأحداث الممكنة ولمزيد من المعلومات.

يجب إعطاء كتلة، وإلا سيُطلق الاستثناء ArgumentError.

إذا لم يتم تضمين التابع 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)

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

البنية العامة

new(*events) { |obj| block }  obj

المعاملات

events‎

أحداث.

القيمة المُعادة

يُعيد التابع new متعقبا جديدًا، :

انظر أيضا

  • التابع stat: يُعيد التابع stat المعلومات الداخلية للمتعقب.

مصادر