نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف BasicObject في روبي
الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ. يمكن استخدام الصنف BasicObject لإنشاء هرميات كائنية (object hierarchies) مستقلة عن الهرمية الكائنية للغة روبي، أو لإنشاء مغلفات الكائنات (proxy objects) مثل الصنف Delegator، أو حيث يجب تجنب إفساد مجال الأسماء (namespace pollution) من قبل توابع وأصناف روبي. لتجنب إفساد الصنف BasicObject للمستخدمين الآخرين، يجب إنشاء صنف فرعي من الصنف BasicObject تحت اسم مناسب بدلاً من تعديل BasicObject مباشرةً: class MyObjectSystem < BasicObject
end
لا يتضمَّن الصنف BasicObject الوحدة Kernel ...
المعامل == في الصنف BasicObject في روبي
يتحقق المعامل == من تساوي كائنين. عمومًا، يُعاد تعريف هذا التابع في الأصناف السليلة (descendant classes) بما يتناسب مع تلك الأصناف. خلافًا للمعامل ==، يجب ألا يُعاد تعريف التابع equal? من قِبل الأصناف الفرعية، إذ يُستخدم آنذاك لتحديد هوية الكائن (أي يستعمل بالشكل a.equal?(b) لتحديد إذا وفقط إذا كان الكائن a هو نفسه الكائن b [انظر المثال في الأسفل]). يعمل التابع eql? على التحقق إذا كان الكائن الذي استُدعي معه والكائن الذي مُرّر إليه هما نفس الكائن أو يشيران إلى ...
المعامل ! في الصنف BasicObject في روبي
يعكس المعامل ! القيمة المنطقية التي تستعمل معه. البنية العامة !obj → true or false
القيم المعادة تعاد قيمة منطقية معاكسة للقيمة المعطاة. أمثلة بعض الأمثلة على استخدام المعامل !: temperature = 76
if !(temperature < 65 || temperature > 85)
puts "Picnic time!"
else
puts "Sorry, no picnic today."
end
انظر أيضًا المعامل ==: يتحقق من تساوي كائنين. المعامل !=: يتحقق من عدم تساوي كائنين. مصادر قسم المعامل ! في الصنف BasicObject في توثيق روبي الرسمي.
المعامل != في الصنف BasicObject في روبي
يتحقق المعامل != من عدم تساوي كائنين. البنية العامة obj != other → true or false
القيم المعادة تعاد القيمة true إن لم يكن الكائن obj مساويًا للكائن other، أو تعاد القيمة false خلاف ذلك. أمثلة مثال على استخدام المعامل !=: puts 14 != 16 # => true
puts 14 != 14 # => false
انظر أيضًا المعامل ==: يتحقق من تساوي كائنين. المعامل !: يعكس القيمة المنطقية التي تستعمل معه. مصادر قسم ...
التابع method_missing في الصنف BasicObject في روبي
يُستدعى التابع method_missing من قِبل روبي عندما تُرسَل رسالةٌ إلى كائن لا يستطيع التعامل معها. بشكل افتراضي، يُطلق المفسِّر (interpreter) خطأً عندما يُستدعى هذا التابع. على أي حال، يمكن إعادة تعريف (override) هذا التابع للحصول على سلوك أكثر ديناميكية. إذا تقرر أنه لا يجب التعامل مع تابع معيّن، فيجب حينئذٍ استدعاء super حتى يتسنَّى للأصناف الأجداد (ancestors) الوصول إلى التابع المنشود. البنية العامة method_missing(symbol [, *args] ) → result
المعاملات symbol رمزٌ للتابع المُستدعى. args الوسائط التي ستُمرَّر إلى التابع ...
التابع instance_exec في الصنف BasicObject في روبي
ينفِّذ التابع instance_exec الكتلة البرمجية المُمرَّرة ضمن سياق الكائن المستقبل (obj). لتعيين السياق، يُضبَط المتغير self إلى obj أثناء تنفيذ الشيفرة، مما يعطي الشيفرة إمكانية الوصول لمتغيرات النسخة obj. البنية العامة instance_exec(arg...) {|var...| block } → obj
المعاملات arg الوسائط المراد تمريرها كمعاملات إلى الكتلة block. القيم المعادة يعاد كائن يحوي ناتج تنفيذ الكتلة البرمجية block. أمثلة مثال على استخدام التابع instance_exec: class KlassWithSecret
def initialize
@secret = 99
end
end
k = KlassWithSecret.new
k.instance_exec(5) {|x| @secret+x } #=> ...
التابع singleton_method_undefined في الصنف BasicObject في روبي
يُستدعى التابع singleton_method_undefined كرد نداءٍ (callback) في كل مرة يكون فيها تابع منفرد (singleton method) غير مُعرَّف (undefined) في المُستقبِل (receiver). البنية العامة singleton_method_undefined(symbol)
أمثلة مثال على استخدام التابع singleton_method_undefined: module Chatty
def Chatty.singleton_method_undefined(id)
puts "Undefining #{id.id2name}"
end
def Chatty.one() end
class << self
undef_method(:one)
end
end
يظهر هذا المثال عند تنفيذه المخرجات التالية: Undefining one
انظر أيضًا التابع singleton_method_added: يُستَدعى هذا التابع كرد نداءٍ (callback) في كلِّ مرة يُضاف فيها تابع منفرد (singleton method) ...
التابع __send__ في الصنف BasicObject في ruby
يستدعي التابع __send__ (يدعى أيضًا send) التابع الممرَّر إليه مع تمرير وسائط محددة إليه. يُستعمَل الاسم __send__ الخاص بهذا التابع إذا تعارض الاسم send مع اسم تابع موجود مسبقًا في obj. البنية العامة send(symbol [, args...]) → obj
__send__(symbol [, args...]) → obj
send(string [, args...]) → obj
__send__(string [, args...]) → obj
المعاملات symbol اسم التابع المُعرَّف المراد استدعاؤه. ...args الوسائط المراد تمريرها إلى التابع المحدد في المعامل symbol. string سلسلة نصية تمثل اسم التابع المراد استدعاؤه. عندما يُعرّف التابع بواسطة سلسلة ...
التابع __id__ في الصنف BasicObject في روبي
يعيد التابع __id__ (يدعى أيضًا object_id) مُعرِّفا عدديًا للكائن الذي استُدعي معه. سيُعاد نفس المعرِّف في كل مرة يُستدعى فيها التابع object_id مع الكائن نفسه، ولن يتشارك أي كائنين نشطين نفس المعرِّف. ملاحظة: يعاد استخدام بعض كائنات الأصناف المٌضمّنة (builtin classes) وذلك لتحسين الأداء. هذا هو الحال بالنسبة للقيم المباشرة (immediate values) والسلاسل النصية الحرفية المجمدة (frozen string literals). لا تُمرَّر القيم المباشرة بالمرجع (reference) ولكنَّها تُمرَّر بالقيمة، مثل nil، و true، و false، و Fixnums، و Symbols، و Floats. ...
التابع instance_eval في الصنف BasicObject في روبي
يقدِّر (Evaluates) التابع instance_eval ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (block) مُمرَّرة ضمن سياق كائن مُستقبِل (obj). لتعيين السياق، يُضبَط المتغير self إلى obj أثناء تنفيذ الشيفرة، مما يعطي الشيفرة إمكانية الوصول لمتغيرات النسخة obj والتوابع الخاصة. عندما يُمرَّر إلى التابع instance_eval كتلة برمجية، يُمرَّر obj أيضاً كوسيط وحيد للكتلة. البنية العامة instance_eval(string [, filename [, lineno]] ) → obj
instance_eval {|obj| block } → obj
عندما يُمرَّر إلى التابع instance_eval سلسلة نصية، يوفر ...
التابع singleton_method_removed في الصنف BasicObject في روبي
يُستَدعى التابع singleton_method_removed كرد نداءٍ (callback) في كل مرة يُحذف فيها تابع منفرد (singleton method) من المُستقبِل (receiver). البنية العامة singleton_method_removed(symbol)
أمثلة مثال على استخدام التابع singleton_method_removed: module Chatty
def Chatty.singleton_method_removed(id)
puts "Removing #{id.id2name}"
end
def self.one() end
def two() end
def Chatty.three() end
class << self
remove_method :three
remove_method :one
end
end
يظهر هذا المثال عند تنفيذه المخرجات التالية: Removing three
Removing one
...
التابع singleton_method_added في الصنف BasicObject في روبي
يُستَدعى التابع singleton_method_added كرد نداءٍ (callback) في كلِّ مرة يُضاف فيها تابع منفرد (singleton method) جديد إلى المُستقبِل (receiver). البنية العامة singleton_method_added(symbol)
أمثلة مثال على استخدام التابع singleton_method_added: module Chatty
def Chatty.singleton_method_added(id)
puts "Adding #{id.id2name}"
end
def self.one() end
def two() end
def Chatty.three() end
end
يظهر هذا المثال عند تنفيذه المخرجات التالية: Adding singleton_method_added
Adding one
Adding three
انظر أيضًا التابع singleton_method_removed: يُستَدعى هذا التابع كرد نداءٍ ...
التابع equal? في الصنف BasicObject في روبي
يتحقق التابع equal? إذا كان الكائن الذي استُدعي معه والكائن الذي مُرّر إليه هما نفس الكائن أو يشيران إلى نفس مفتاح الخريطة (hash key). عمومًا، يُعاد تعريف هذا التابع في الأصناف السليلة (descendant classes) لتتناسب مع تلك الأصناف. خلافًا للمعامل ==، يجب ألا يُعاد تعريف التابع equal? من قِبل الأصناف الفرعية، إذ يُستخدم آنذاك لتحديد هوية الكائن (أي يستعمل بالشكل a.equal?(b) لتحديد إذا وفقط إذا كان الكائن a هو نفسه الكائن b [انظر المثال في الأسفل]). يُستخدم هذا التابع من ...
الصنف Class في روبي
تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class. عادةً، يمكن عادةً إنشاء صنف جديد بالشكل التالي: class Name
# تكتب هنا الشيفرة التي تعرف سلوك الصنف
end
عندما يُنشَأ صنف جديد، يهيَّأ كائن من النوع Class ويسند إلى ثابت عام (global constant، هو Name في المثال السابق). عند استدعاء Name.new لإنشاء كائن جديد، يُنفَّذ التابع new الخاص بالصنف Class بشكل افتراضي. يمكن إثبات ذلك من خلال إعادة تعريف التابع new: class Class
alias old_new ...
التابع superclass في الصنف Class في روبي
يعيد التابع superclass الصنف الأب (superclass) للصنف المستدعى معه. البنية العامة superclass → a_super_class or nil
القيمة المعادة يعاد الصنف الأب للصنف المعطى أو القيمة nil إن لم يكن للصنف المعطى صنف أب. أمثلة مثال على استخدام التابع superclass: File.superclass #=> IO
IO.superclass #=> Object
Object.superclass #=> BasicObject
class Foo; end
class Bar < Foo; end
Bar.superclass ...
التابع ?Object.respond_to_missing في روبي
تحذير: لا تستخدم هذا التابع مباشرةً!. يُصنَّف التابع ?respond_to_missing من التوابع الخطَّافة (Hook method)، إذ يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا. إن أعطي معامل اسم التابع بشكل سلسلةٍ نصية، فستُحوَّل تلك السلسلة النصية إلى رمز. ألقِ نظرةً على التابع ?respond_to، وعلى المثال في صفحة الصنف BasicObject. البنية العامة respond_to_missing?(symbol, include_all) → true or false
respond_to_missing?(string, include_all) → true or false
المعاملات symbol الرَّمزُ المعرِّف للتابع المُعطى. include_all يأخذ هذا المعامل القيمة false (افتراضيًا)، أو القيمة ...
الوحدات والأصناف في روبي
الوحدات تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. يستخدم نطاق الأسماء لتنظيم الشيفرة البرمجية ضمن مجموعات مستقلّة تمنع تداخل التوابع والمتغيّرات ذات الأسماء المتشابهة فيما بينها. فعلى سبيل المثال، نطاق الأسماء IRB يوفّر عمليات irb والتي تمنع التصادم مع الاسم الشائع "Context". وظيفة الخلط الضمني (Mix-in) تسمح بمشاركة توابع مشتركة عبر عدد من الأصناف أو الوحدات، إذ يأتي مع لغة روبي على سبيل المثال الوحدة Enumerable التي توفّر ...
التحميل التلقائي وإعادة تحميل الثوابت في ريلز
يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي. ماهية autoload_paths وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج. كيفية عمل التحميل التلقائي للثابت. ماهية need_dependency. كيفية عمل إعادة التحميل للثابت. حلول للتحميل التلقائي المشترك. المقدمة تسمح لغة ريلز بكتابة تطبيقات كما لو حملت الشيفرة الخاص بها مسبقًا. في أصناف برنامج روبي عادي، تحتاج إلى تحميل جميع اعتماديته (dependencies): require 'application_controller'
require 'post'
class PostsController < ApplicationController
def index
...
Ruby/Topics
تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...
الصنف Object في روبي
يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. تندمج الوحدة Kernel ضمن الصنف Object ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object معرَّفةٌ عن طريق الوحدة Kernel، رأينا أن نوثّقهم هنا لمزيد من الوضوح. عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا ...
التحسينات في روبي
إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...
التوابع في روبي
تتضمّن التوابع في لغة روبي الوظائف التي يقوم بها برنامجك. إليك هذا المثال لتعريف تابع بسيط: def one_plus_one
1 + 1
end
تعريف التابع يتكوّن من الكلمة المحجوزة def يتبعها اسم التابع، ثمّ جسم التابع، فالقيمة المعادة وفي النهاية الكلمة المحجوزة end. فعند تنفيذ التابع في المثال السابق، ستُعاد القيمة 2. هذا القسم سيغطّي تعريف التّوابع. ارجع إلى توثيق استدعاء التوابع لتتعرف على الصيغ المستخدمة لذلك الغرض. تسمية التوابع يمكن أن تستخدم لاسم التابع أحد المعاملات، وإلا فعليك أن تبتدئه بحرف أبجديّ أو ...
الإسناد في روبي
لكي نسند شيئًا في لغة روبي، نستخدم رمز المساواة =؛ ففي المثال التّالي، يُسنَد العدد 5 إلى المتغيّر v المحلّي: v = 5
فالإسناد يُنشئ متغيّرًا محلّيًا جديدًا إذا لم يكن قد عُرِّفَ من قبل. أسماء المتغيرات المحلية اسم المتغيّر المحلّي يجب أن يبدأ بحرف صغير من مجموعة المحارف US-ASCII أو من مجموعة المحارف التي تُمثَّل باستخدام ثمان بتات ثنائيّة. وبشكلٍ عام، فإنّ أسماء المتغيّرات المحلّية متوافقة مع US-ASCII كون الأزرار التي تستخدم لكتابتها موجودة في جميع لوحات المفاتيح. عمومًا، جميع ...
تثبيت روبي على مختلف المنصات
توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...
معلومات إضافية عن روبي
هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...
التابع Object.instance_variable_set في روبي
يُعيِّن التابع instance_variable_set قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى؛ هذا يؤدي إلى إحباط جهود منشئ الصنف في محاولة توفير التغليف (encapsulation) المناسب. ليس من الضروري أن يتواجد المتغيِّر قبل استدعاء هذا التابع. إذا مُرِّر اسم متغيِّر النسخة بشكل سلسلةٍ نصيةٍ (string)، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة instance_variable_set(symbol, obj) → obj
instance_variable_set(string, obj) → obj
المعاملات symbol الرمزُ الذي يشير إلى اسم متغيِّر النسخة المراد تعيين قيمة المعامل obj إليه في الكائن المُعطى. string ...
التابع String.sub في روبي
يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str
sub(pattern, hash) → new_str
sub(pattern) {|match| block } → new_str
إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل $1، و $2، و $`، و $&، و $' بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...
التابع Numeric.arg في روبي
يعيد التابع arg القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. البنية العامة arg → 0 or float
القيمة المُعادة تعاد القيمة 0 إن كانت القيمة المعطاة موجبة، أو pi خلاف ذلك. انظر أيضا التابع angle: يعيد القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. التابع ceil: يعيد أصغر عدد أكبر من أو يساوي العدد المعطى وبدقة محدَّدة. مصادر قسم التابع arg في الصنف Numeric في توثيق روبي الرسمي.
التابع Thread.keys في روبي
يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array
القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys: thr = Thread.new do
Thread.current[:cat] = 'meow'
Thread.current["dog"] = 'woof'
end
thr.join #=> #<Thread:0x401b3f10 dead>
thr.keys #=> [:dog, :cat]
انظر أيضًا التابع key?: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys في الصنف Thread ...
التابع Array.sort! في روبي
يرتب التابع sort! عناصر المصفوفة التي استُدعيت معه. ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة. إن استعملت الكتلة البرمجية block في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر a والعنصر b وتعيد عددًا سالبًا إن كان b أكبر من a، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان b أصغر من a. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية ...
التابع =Process.uid في روبي
يضبط التابع uid عند استدعائه بالشكل uid= user المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية إلى القيمة user. هذا التابع غير متاح على جميع المنصات. البنية العامة uid= user → numeric
القيم المعادة تعاد القيمة user بعد تعيينها إلى المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. أمثلة مثال على استعمال التابع uid: Process.setproctitle('myapp: worker #%d' % worker_id)
انظر أيضًا التابع uid: يعيد المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. التابع gid=: يضبط عند استدعائه بالشكل gid= integer مُعرِّف المجموعة المالكة للعملية الحالية إلى القيمة ...
التابع ARGF.inspect() في روبي
يعد التابع inspect() اسمًا بديلًا للتابع to_s. انظر أيضًا التابع to_s: يعيد القيمة "ARGF". مصادر قسم التابع ARGF.inspect() في الصنف ARGF في توثيق روبي الرسمي.
الصنف Data في روبي
الصنف Data هو صنف مهمل. كان يعدُّ الصنف الأساس لملحقات C التي تستعمل Data_Make_Struct أو Data_Wrap_Struct. مصادر صفحة الصنف Data في توثيق روبي الرسمي.
التابع InstructionSequence.of في روبي
يُعيد التابع of سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. البنية العامة of(p1)
أمثلة مثال على استعمال التابع of باستخدام irb: # a proc
> p = proc { num = 1 + 2 }
> RubyVM::InstructionSequence.of(p)
> #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)>
# for a method
> def foo(bar); puts bar; end
> RubyVM::InstructionSequence.of(method(:foo))
> #=> <RubyVM::InstructionSequence:foo@(irb)>
أو باستخدام compile_file: # /tmp/iseq_of.rb
def hello
puts "hello, world"
end
$a_global_proc = proc { str = 'a' + 'b' }
# in irb
> require '/tmp/iseq_of.rb'
# first the method hello
> RubyVM::InstructionSequence.of(method(:hello))
> #=> ...
التابع Float.prev_float في روبي
يعيد التابع prev_float العدد العشري الذي يسبق العدد العشري الذي استُدعي معه. يعيد استدعاء التابع prev_float مع القيمة ((-Float::MAX والقيمة (Float::INFINITY-) القيمة الثابتة -Float::INFINITY. ويعيد استدعاء التابع بالشكل Float::NAN.prev_float القيمة Float::NAN. البنية العامة prev_float → float
القيمة المعادة يعاد العدد العشري السابق للعدد العشري المعطى. أمثلة مثال على استخدام التابع prev_float: 0.01.prev_float #=> 0.009999999999999998
1.0.prev_float #=> 0.9999999999999999
100.0.prev_float #=> 99.99999999999999
0.01 - 0.01.prev_float #=> 1.734723475976807e-18
1.0 - 1.0.prev_float ...
التابع GC.disable في روبي
يعطِّل التابع disable جمع البيانات المهملة، ويعيد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. البنية العامة disable → true or false
القيمة المعادة تعاد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. خلا ذلك، تعاد القيمة false. أمثلة مثال على استعمال التابع disable: GC.disable #=> false
GC.disable #=> true
انظر أيضا التابع enable: يفعِّل جمع البيانات المهملة، ويعيد القيمة true إذا كان جمع البيانات المهملة مُعطَّلًا مسبقًا. مصادر قسم التابع disable في الصنف GC في توثيق ...
التابع Dir.delete في روبي
يحذف التابع delete مجلدًا محدَّدًا. سيُطلق خطأ من صنف فرعي من SystemCallError في حال لم يكن المجلد المراد حذفه موجودًا. البنية العامة delete( string ) → 0
المعاملات string اسم المجلد المُراد حذفه. انظر أيضًا التابع chdir : يغيِّر مجلد العمل (working directory) الحالي للعملية إلى مجلد محدَّد. التابع rmdir :يحذف مجلدًا محدَّدًا. مصادر قسم التابع delete في الصنف Dir في توثيق روبي الرسمي.
الصنف FrozenError في روبي
يرمى الاستثناء FrozenError عند محاولة تعديل كائن مجمد. [1, 2, 3].freeze << 4
عند تنفيذ هذه الشيفرة، يرمى الاستثناء: FrozenError: can't modify frozen Array
انظر أيضًا التابع freeze: يجمد السلسلة النصية التي استُدعيت معه، أي يجعلها غير قابلة للتعديل. مصادر صفحة الصنف FrozenError في توثيق روبي الرسمي.
التابع ARGF.printf في روبي
يطبع التابع printf الكائن أو الكائنات الممرَّرة إليه على المجرى ios (اختصارًا للعبارة Input Output Stream) بعد تنسيقها بشكل معين. للمزيد من المعلومات حول المعاملات المستعملة في عملية التنسيق (أي المستعملة مع الوسيط format_string)، ارجع إلى صفحة التابع Kernel.sprintf. البنية العامة printf(format_string [, obj, ...]) → nil
القيم المعادة تعاد القيمة nil. أمثلة مثالٌ على استخدام التابع printf: printf("%s, the sale price is $%f.\n", name, sale_price)
...
التابع Thread.thread_variable? في روبي
يتحقق التابع thread_variable? إن كانت السلسلة النصية أو الرمز المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable). لاحظ أنَّ هذه المتغيرات ليست متغيرات محلية الألياف (fiber local variables). يرجى الاطلاع على صفحة المعامل [] والتابع thread_variable_get لمزيد من التفاصيل. البنية العامة thread_variable?(key)→ true or false
المعاملات key سلسلة نصية أو رمز. القيمة المعادة تعاد القيمة true إن كانت السلسلة النصية أو الرمز key المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable)، وإلا فستعاد القيمة false. أمثلة مثال على استخدام التابع thread_variable?: ...
الصنف ConditionVariable في روبي
توسع كائنات الصنف ConditionVariable عمل الصنف Mutex. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما. إليك المثال التالي: mutex = Mutex.new
resource = ConditionVariable.new
a = Thread.new {
mutex.synchronize {
# Thread 'a' now needs the resource
resource.wait(mutex)
# 'a' can now have the resource
}
}
b = Thread.new {
mutex.synchronize {
...
الصنف TracePoint في روبي
يوفر الصنف TracePoint وظائف Kernel.set_trace_func على شكل واجهة برمجية كائنية (Object-Oriented API). مثال يمكننا استخدام المتعقبات (كائنات الصنف TracePoint) لجمع المعلومات بخصوص الاستثناءات: trace = TracePoint.new(:raise) do |tp|
p [tp.lineno, tp.event, tp.raised_exception]
end
#=> #<TracePoint:disabled>
trace.enable
#=> false
0 / 0
#=> [5, :raise, #<ZeroDivisionError: divided by 0>]
الأحداث إذا لم تحدِّد نوع الأحداث التي تريد الاستماع إليها، فسيشمل المتعقب TracePoint جميع الأحداث المتاحة. ملحوظة: لا تعتمد على مجموعة الأحداث الحالية، إذ أن هذه القائمة عرضةٌ للتغيير. بدلًا من ذلك، يُنصَح بتحديد نوع ...
التابع Numeric.truncate في روبي
يعيد التابع truncate العدد الذي استُدعي معه بعد اقتطاع المنازل العشرية منه بمقدار محدَّد. ينفذ الصنف Numeric هذا عن طريق تحويل قيمة العدد إلى النوع Float ثم يستدعي Float.truncate. البنية العامة truncate([ndigits]) → integer or float
المعاملات ndigits عدد يمثل دقة التقريب. القيمة الافتراضية هي: 0. القيمة المعادة يعاد عدد صحيح أو عشري يمثِّل العدد المعطى بعد اقتطاع المنازل العشرية منه بدقة ndigits. انظر أيضا التابع ceil: يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد الذي استُدعي معه ...
معالجة الاستثناءات في روبي
يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end: begin
# الشيفرة التي قد تسبب ظهور استثناء برمجي
rescue
# معالجة الاستثناء
end
إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته: def my_method
# ...
rescue
# ...
end
نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules). يمكنك إسناد استثناء إلى متغيّر محليّ باستخدام الرمز => متبوعًا باسم المتغيّر، وذلك في نهاية السطر الخاص بالكلمة rescue: begin
# ...
rescue => exception
warn exception.message
raise # كرر ظهور ...
التابع ARGF.chars() في روبي
التابع ()chars هو اسم بديل مهمل (deprecated) للتابع each_char. انظر أيضًا التابع each_char: يعيد قيمة قابلة للعد (enumerator) تتكرر (Iterate) على كل قيمة من النوع char في الملفات الموجودة في ARGV. مصادر قسم التابع chars() في الصنف ARGF في توثيق روبي الرسمي.
التابع SizedQueue.new في روبي
ينشئ التابع new طابورًا ذا طول ثابت، مع حد أقصى لحجمه. البنية العامة new(max)
المعاملات max عدد يمثل الحد الأقصى لحجم الطابور المراد إنشاؤه. القيمة المعادة يعاد طابورٌ ذو طول ثابت يساوي إلى max. انظر أيضا المعامل <<: يضيف كائنات إلى الطابور المعطى. التابع close: يغلق الطابور الذي استدعي معه. مصادر قسم التابع new في الصنف SizedQueue في توثيق روبي الرسمي.
التابع FileTest.writable_real? في روبي
يعيد التابع writable_real? إن كان ملفٌ ما قابلًا للكتابة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. اطلع على توثيق الدالة access(3). البنية العامة writable_real?(file_name) → true or false
المعاملات file_name اسم الملف المراد التحقق منه. القيمة المعادة تعاد القيمة true إن كان ملفٌ ما قابلًا للقراءة من طرف مُعرِّف المستخدم والمجموعة الحقيقي للعملية الحالية. خلا ذلك، تعاد القيمة false. انظر أيضًا التابع owned?: يتحقق إن كان ملفٌ ما موجودًا وكان مالك هذا الملف هو نفسه المعرِّف الفعلي للمستخدم المالك للعملية التي استدعته. التابع readable_real?: يتحقق إن كان ...
التابع Range.member? في روبي
يتحقق التابع member? إن كان كائنٌ ما عنصرًا من المجال الذي استُدعي معه. إن كان عنصرا البداية والنهاية عددين، فستتم المقارنة وفقًا لمقدار (magnitude) القيم. البنية العامة member?(obj) → true or false
المعاملات obj الكائن المراد التحقق من كونه واقعًا في المجال المعطى. القيمة المعادة تعاد القيمة true إن كان obj عنصرًا من المجال الذي استُدعي معه، أو تعاد القيمة false خلاف ذلك. أمثلة مثال على استخدام التابع member?: ("a".."z").include?("g") #=> true
("a".."z").include?("A") #=> false
("a".."z").include?("cc") ...
التابع Object.public_methods في روبي
يُعيد التابع public_methods قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة public_methods(all=true) → array
المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع العامة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...
التابع Integer.floor في روبي
يعيد التابع floor أكبر عدد من الأعداد الأصغر من أو تساوي العدد الذي استُدعي معه وبدقة (precision) تساوي العدد المعطى (القيمة الابتدائية هي 0). البنية العامة floor([ndigits]) → integer or float
المعاملات ndigits عدد يحدد الدقة. إذا كانت الدقة سالبة، فإنّ القيمة المعادة ستكون عددًا صحيحًا مع ndigits.abs صفر إضافي على الأقل. القيمة المعادة يعيد التابع floor أكبر عدد من الأعداد الأصغر من أو يساوي قيمة العدد الذي استُدعي معه وبدقة تساوي ndigits رقم عشري. إذا كانت الدقة سالبة، ...