نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الصنف Module في روبي

الصنف Module هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function. في الأمثلة الموجودة في صفحات التوابع، يشير المعامل sym إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنًا من النوع ...

المعامل ‎<=‎‎ الخاص بالصنف Module في روبي

يعيد المعامل ‎<=‎ القيمة true إن كانت الوحدة Module التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه أو كانت الوحدتان متساويتين تمامًا، أو يعيد القيمة nil إذا لم تكن بينهما أية علاقة (فكر في هذه العلاقة من منظور تعريف الأصناف: "الصنف A < الصنفB" يستلزم "A < B"). البنية العامة mod <= other→ true, false, or nil‎ القيمة المعادة تعاد القيمة true إن كان mod صنفًا فرعيًا من other أو كان يساويه، أو تعاد القيمة nil ...

المعامل ==‎ الخاص بالصنف Module في روبي

يتحقق معامل التساوي == من تساوي كائنين. البنية العامة obj == other → true or false equal?(other)→ true or false eql?(other) → true or false‎ في مستوى الصنف Object، يعيد المعامل == القيمة true فقط إن كان obj و other نفس الكائن. بشكل عام، يٌعاد تعريف هذا التابع في الأصناف المنحدرة (descendant classes) لتخصيصه للصنف المُستخدم. بخلاف المعامل ==، لا يجب أبدًا إعادة تعريف التابع equal?‎ في الأصناف الفرعية (subclasses)، لأنه يُستخدَم لتحديد هوية الكائن (أي أنّ a.equal?(b)‎ تعيد true إذا ...

المعامل ===‎ الخاص بالصنف Module في روبي

يعيد المعامل === القيمة true إن كان الكائن الواقع على يمينه نسخةً (instance ) من الكائن Module الواقع على يمينه أو من أحد الأصناف المنحدرة منه. استخدامه مع الوحدات (modules) محدود، ولكن يمكن استخدامه في عبارات case لتصنيف الكائنات بحسب الصنف. البنية العامة mod === obj → true or false‎ القيمة المعادة تعاد القيمة true إن كان obj نسخة من mod أو من أحد الأصناف المنحدرة منه. وإلا فستُعاد القيمة false. انظر أيضا المعامل <: يعيد القيمة true الكائن Module الذي ...

المعامل ‎>=‎‎ الخاص بالصنف Module في روبي

يعيد المعامل ‎>=‎‎ القيمة true إن كانت الوحدة Module التي تقع على يساره سلفًا (ancestor) للوحدة التي تقع على يمينه أو إن كانت الوحدتان متساويتين، أو يعيد القيمة nil إن لم تكن بينها أي علاقة. (فكر في العلاقة من منظور تعريف الأصناف: "الصنف A < الصنف B" يستلزم "B > A".) البنية العامة mod >= other→ true, false, or nil‎ القيمة المعادة تعاد القيمة true إن كانت الوحدة mod سلفًا للوحدة other، أو إن كانت الوحدتان متساويتين، أو تعاد القيمة ...

المعامل ‎>‎‎ الخاص بالصنف Module في روبي

يعيد المعامل < القيمة true الكائن Module الذي يقع على يساره سلفًا (ancestor) للكائن الذي يقع على يمينه، أو يعيد القيمة nil إن لم تكن بينهما أية علاقة (فكر في العلاقة من منظور تعريف الأصناف: "الصنف A < الصنف B" يستلزم "B > A"). البنية العامة mod > other→ true, false, or nil‎ القيمة المعادة تعاد القيمة true إن الكائن mod سلفًا للكائن other، أو تعاد القيمة nil إن لم تكن بينهما أي علاقة. خلا ذلك، تعاد القيمة false.  ...

المعامل ‎<=>‎‎ الخاص بالصنف Module في روبي

يجري المعامل <=> عملية الموازنة بين كائنين ثم يعيد الناتج الذي يشير إلى العلاقة بينهما. البنية العامة module <=> other_module→ -1, 0, +1, or nil‎ يجري المعامل <=> عملية الموزانة ثمَّ يعيد إحدى القيم ‎-1 أو 0 أو ‎+1 أو nil اعتمادًا على ما إذا كان module يتضمن other_module، أو كانا متساويين، أو إذا كان module متضمَّنًا في other_module. تعاد القيمة nil إن لم تكن بين module و other_module أية علاقة، أو إن لم يكن other_module وحدة من الصنف Module، أو ...

المعامل ‎<‎‎ الخاص بالصنف Module في روبي

يعيد المعامل ‎<‎ القيمة true إن كانت الوحدة Module التي تقع على يساره صنفًا فرعيًّا من الوحدة التي تقع على يمينه، أو يعيد القيمة nil إن لم تكن بينهما أية علاقة (فكر في العلاقة من منظور تعريف الأصناف: "الصنف A < الصنف B" يستلزم "A < B"). البنية العامة mod < other→ true, false, or nil‎ القيمة المعادة تعاد القيمة true إن كان mod صنفًا فرعيًّا من other، أو تعاد القيمة nil إن لم تكن بينهما أي علاقة. خلا ذلك، ...

الصنف Class في روبي

تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class. عادةً، يمكن عادةً إنشاء صنف جديد بالشكل التالي: class Name # تكتب هنا الشيفرة التي تعرف سلوك الصنف end عندما يُنشَأ صنف جديد، يهيَّأ كائن من النوع Class ويسند إلى ثابت عام (global constant، هو Name في المثال السابق). عند استدعاء Name.new لإنشاء كائن جديد، يُنفَّذ التابع new الخاص بالصنف Class بشكل افتراضي. يمكن إثبات ذلك من خلال إعادة تعريف التابع new: class Class alias old_new ...

الوحدات (Modules) في Node.js

مؤشر الاستقرار: 2 - مستقر يعامل كل ملف في نظام الوحدات في بيئة Node.js كوحدة منفصلة. على سبيل المثال، فليكن ملف اسمه foo.js: const circle = require('./circle.js'); console.log(`The area of a circle of radius 4 is ${circle.area(4)}`); في السطر الأول، يُحمِّل foo.js الوحدة circle.js الموجودة في نفس المجلد مع foo.js. وإليك محتويات circle.js: const { PI } = Math; exports.area = (r) => PI * r ** 2; exports.circumference = (r) => 2 * PI * r; صدَّرت الوحدة circle.js الدالتين area()‎ و circumference()‎. وتُضاف ...

الصنف Symbol في روبي

تمثل كائنات الصنف Symbol أسماء وسلاسل نصية داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين ‎:name و ‎:"string"‎، أو بواسطة التوابع to_sym. سيتم إنشاء نفس الرمز (نفس الكائن Symbol) لاسم أو سلسلة نصية معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان Fred ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز Symbol :Fred نفس الكائن في جميع السياقات الثلاث. module One class Fred end ...

التابع autoload‎ الخاص بالصنف Kernel في روبي

يسجل التابع autoload اسم الملف المعطى لكي يُحمّل (باستخدام Kernel::require) في المرة الأولى التي يتم الوصول فيها إلى وحدة محدَّدة. البنية العامة autoload(module, filename)→ nil‎ المعاملات module سلسلةٌ نصيةٌ أو رمزٌ (symbol) يمثِّل اسم الوحدة. filename اسم الملف. المراد تحميله عن الوصول إلى الوحدة module. القيمة المعادة تعاد القيمة nil عند نجاح العملية. أمثلة مثال على استخدام التابع autoload‎: autoload(:MyModule, "/usr/local/lib/modules/my_module.rb") ‎ انظر أيضا التابع autoload?‎: يعيد اسم الملف المراد تحميله إذا سُجّل للتحميل عند الوصول إلى وحدة محدَّدة عبر التابع autoload. ...

الصنف Method في روبي

يتم إنشاء كائنات الصنف Method بواسطة التابع Object.method، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod) ثم ربطها بآخر. class Thing def square(n) n*n end end thing = Thing.new meth = thing.method(:square) meth.call(9) #=> 81 [ 1, 2, 3 ...

الصنف UnboundMethod في روبي

تدعم روبي شكلين من التوابع الكائنية (objectified methods). يستخدم الصنف Method لتمثيل التوابع المرتبطة بكائن معين، ويمكن إنشاء كائنات التوابع من هذا النوع عبر التابع Object.method. تدعم روبي أيضًا التوابع الحرة (unbound methods)؛ وهي كائنات توابع غير مرتبطة بكائن معين. يمكن إنشاؤها إما عن طريق استدعاء Module.instance_method، أو عن طريق استدعاء unbind على تابع مرتبط (bound method object). نتيجة كليهما ستكون تابعًا حرًا (كائن من النوع UnboundMethod). لا يمكن استدعاء التوابع الحرة إلا بعد ربطها بكائن ما. ويجب أن يعيد ...

المعامل ==‎ الخاص بالصنف Method في روبي

يتحقق المعامل == من تساوي كائنين من النوع Method. يكون كائنان من النوع Method متساويين إن كانا مرتبطين بنفس الكائن، وكانا لهما نفس التعريف، وكان لهما نفس الصنف أو الوحدة (module) المالكة. البنية العامة meth == other_meth → true or false‎ القيمة المعادة تُعاد القيمة true إن كان الكائنان متساويين، وإلا فستُعاد القيمة false. انظر أيضا التابع ===: يستدعي كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. مصادر قسم ...

الصنف BasicObject في روبي

الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ. يمكن استخدام الصنف BasicObject لإنشاء هرميات كائنية (object hierarchies) مستقلة عن الهرمية الكائنية للغة روبي، أو لإنشاء مغلفات الكائنات (proxy objects) مثل الصنف Delegator، أو حيث يجب تجنب إفساد مجال الأسماء (namespace pollution) من قبل توابع وأصناف روبي. لتجنب إفساد الصنف BasicObject للمستخدمين الآخرين، يجب إنشاء صنف فرعي من الصنف BasicObject تحت اسم مناسب بدلاً من تعديل BasicObject مباشرةً: class MyObjectSystem < BasicObject end لا يتضمَّن الصنف BasicObject الوحدة Kernel ...

التابع 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) ...

التابع 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: يُستَدعى هذا التابع كرد نداءٍ ...

الصنف ‎:required‎

الصنف الزائف ‎:required‎ في CSS (أي pseudo-class) يُمثِّل أيّة عناصر <input> أو <select> أو <textarea> التي ضُبِطَت الخاصية required عليها. input:required { border: 1px dashed red; } هذا الصنف الزائف مفيدٌ لتنسيق الحقول الضرورية لإرسال النموذج. ملاحظة: الصنف الزائف ‎:optional هو الصنف الذي يُطابِق الحقول الضرورية في النموذج. :required أمثلة راجع صفحة الصنف الزائف ‎:invalid للأمثلة. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي 10.0 4.0 10 10.0 5.0 انظر أيضًا صفحة الصنف الزائف optional: الذي يُمثِّل أيّة عناصر <input> أو <select> أو <textarea> التي لم ...

الصنف ‎:optional‎

الصنف الزائف ‎:optional‎ في CSS (أي pseudo-class) يُمثِّل أيّة عناصر <input> أو <select> أو <textarea> التي لم تُضبَط الخاصية required عليها. input:optional { border: 1px dashed black; } هذا الصنف الزائف مفيدٌ لتنسيق الحقول التي ليست ضروريةً لإرسال النموذج. ملاحظة: الصنف الزائف ‎:required هو الصنف الذي يُطابِق الحقول الضرورية في النموذج. :optional أمثلة راجع صفحة الصنف الزائف ‎:invalid للأمثلة. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي 10.0 4.0 10 10.0 5.0 انظر أيضًا صفحة الصنف الزائف required: الذي يُمثِّل ...

الصنف ‎:enabled

الصنف الزائف ‎:enabled في CSS (أي pseudo-class) يُمثِّل أي عنصر مُفعّل، أي يمكن اختياره أو النقر عليه أو الكتابة فيه أو يمكن التركيز عليه (focus): input:enabled { color: blue; } الشكل العام لهذا المحدد: :enabled أمثلة سنجعل عناصر <input> المُفعّلة بلونٍ أخضر، وبلونٍ فضي عندما تكون معطلةً، وذلك كي يتمكن المستخدم من التفريق بصريًا بين العناصر التي يستطيع التفاعل معها وتلك التي لا يستطيع التفريق بينها: <form action="url_of_form"> <label for="FirstField">الحقل الأول (enabled):</label> <input type="text" id="FirstField" value="Lorem"><br> <label for="SecondField">الحقل ...

الصنف ‎:right

الصنف الزائف ‎:right في CSS (أي pseudo-class) يُستعمَل مع القاعدة ‎@page، ويُمثِّل الصفحات اليمينية (right hand pages) من المستند عند طباعته. @page :right { margin: 2in 3in; } معرفة إذا كانت الصفحة يسارية أو يمينية تعتمد على اتجاه الكتابة التابع للمستند، فأوّل صفحة في المستندات من اليسار إلى اليمين ستكون يمينيّة ‎:right، أما أوّل صفحة في المستندات من اليمين إلى اليسار فستكون يساريّةً ‎:left. ملاحظة: لا يمكن تغيير قيم جميع خاصيات CSS عند استخدام هذا الصنف الزائف، وإنما يمكن تغيير قيم ...

الصنف ‎:left

الصنف الزائف ‎:left في CSS (أي pseudo-class) يُستعمَل مع القاعدة ‎@page، ويُمثِّل الصفحات اليسارية (left hand pages) من المستند عند طباعته. @page :left { margin: 2in 3in; } معرفة إذا كانت الصفحة يسارية أو يمينية تعتمد على اتجاه الكتابة التابع للمستند، فأوّل صفحة في المستندات من اليسار إلى اليمين ستكون يمينيّة ‎:right، أما أوّل صفحة في المستندات من اليمين إلى اليسار فستكون يساريّةً ‎:left. ملاحظة: لا يمكن تغيير قيم جميع خاصيات CSS عند استخدام هذا الصنف الزائف، وإنما يمكن تغيير قيم ...

الوحدات والأصناف في روبي

الوحدات تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. يستخدم نطاق الأسماء لتنظيم الشيفرة البرمجية ضمن مجموعات مستقلّة تمنع تداخل التوابع والمتغيّرات ذات الأسماء المتشابهة فيما بينها. فعلى سبيل المثال، نطاق الأسماء IRB يوفّر عمليات irb والتي تمنع التصادم مع الاسم الشائع "Context". وظيفة الخلط الضمني (Mix-in) تسمح بمشاركة توابع مشتركة عبر عدد من الأصناف أو الوحدات، إذ يأتي مع لغة روبي على سبيل المثال الوحدة Enumerable التي توفّر ...

التابع load‎ الخاص بالصنف Kernel في روبي

يحمّل التابع load وينفّذ برنامج روبي في الملف المعطى. في حال لم لميكن بالإمكان استبيان مسار الملف المطلق (absolute path)، فسيتم البحث عن الملف في مجلدات المكتبة الموجودة في ‎$:‎. إذا كان الوسيط الاختياري wrap يساوي true، فسيُنفذ النص البرمجي المحمّل كوحدة مجهولة (anonymous module)، لحماية مجال الأسماء الخاص بالبرنامج المُستدعَى. لن يتم نشر أيّ من المتغيرات المحلية الموجودة في الملف الذي تم تحميله تحت أي ظرف من الظروف في بيئة التحميل. البنية العامة load(filename, wrap=false)→ true‎ المعاملات filename‎ اسم ...

التابع Module.used_modules‎ في روبي

يعيد التابع used_modules مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي. ترتيب الوحدات في المصفوفة الناتجة غير محدد. البنية العامة used_modules → array‎ القيمة المعادة تعاد مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي. أمثلة مثال على استخدام التابع used_modules‎: module A refine Object do end end module B refine Object do end end using A using B p Module.used_modules‎ ناتج تنفيذ الشيفرة هو: [B, A] انظر أيضا التابع using: يستورد الأصناف المهذبة (class refinements) من الوحدة في التعريف الحالي للصنف أو الوحدة. ...

الصنف ‎:indeterminate

الصنف الزائف ‎:indeterminate في CSS (أي pseudo-class) يُمثِّل أيّة نماذج تكون حالتها غير معروفة (indeterminate): input:indeterminate { background: lime; } يمكن أن يُطابِق هذا المُحدَّد العناصر الآتية: صندوق تأشير checkbox الذي ضُبِطَت الخاصية indeterminate فيه إلى true عبر JavaScript. أزرار الانتقاء radio عندما تكون جميع الأزرار التي لها نفس القيمة للخاصية name غير منتقاةً. عناصر <progress> في الحالة غير المعروفة. الشكل العام لهذا المحدد: :indeterminate أمثلة سنُطبِّق في المثال الآتي أنماط خاصة لعناصر <label> المرتبطة بحقول النموذج ذات الحالة غير المعروفة: ...

الصنف ‎:default

الصنف الزائف ‎:default في CSS (أي pseudo-class) يُمثِّل أي عنصر مُختار افتراضيًا بين مجموعة من العناصر المتعلقة به؛ ويمكن استخدام هذا الصنف الزائف على أيّة أزرار عادية <button> أو أزرار انتقاء (radio button) أو صناديق تأشير (checkbox) أو خيارات <option> في عنصر <select> تم تحديدها أو انتقاؤها. input:default { background-color: lime; } العناصر التي تسمح باختيار أكثر من عنصر يمكن أن يكون لها أكثر من عنصر مُختار افتراضيًا، ففي هذه الحالة ستُحدَّد جميع الخيارات الافتراضية باستخدام الصنف الزائف ‎:default. الشكل العام ...

الصنف ‎:first

الصنف الزائف ‎:first في CSS (أي pseudo-class) يُستعمَل مع القاعدة ‎@page، ويُمثِّل أوّل صفحة من المستند عند طباعته. @page :first { margin-left: 50%; margin-top: 50%; } ملاحظة: لا يمكن تغيير قيم جميع خاصيات CSS عند استخدام هذا الصنف الزائف، وإنما يمكن تغيير قيم الهوامش margin واليتامى orphans والأرامل widows وطريقة الانتقال إلى صفحة جديدة؛ وسيتم تجاهل جميع الخاصيات الأخرى. الشكل العام لهذا المحدد: :first أمثلة لاحظ كيف ستتغير الهوامش في الصفحة الأولى عند طباعتها: <p>الصفحة الأولى</p> <p>الصفحة الثانية</p> <button>طباعة!</button> شيفرة CSS: @page :first ...

التابع Module.extended‎ في روبي

يكافئ التابع extended التابع included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). البنية العامة extended(othermod)‎ المعاملات othermod‎ وحدة من النوع Module. أمثلة مثال على استخدام التابع extended‎: module A def self.extended(mod) puts "#{self} extended in #{mod}" end end module Enumerable extend A end # => prints "A extended in Enumerable"‎ انظر أيضا التابع included: يمثِّل رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. التابع extend_object: يوسع الكائن المعطى بإضافة ثوابت ...

التابع Module.nesting‎ في روبي

يعيد التابع nesting قائمة من الوحدات المتشعبة (Modules nested) لحظة الاستدعاء. البنية العامة nesting → array‎ القيمة المعادة تعاد مصفوفة تحوي قائمة من الوحدات المتشعبة لحظة الاستدعاء. أمثلة مثال على استخدام التابع nesting‎: module M1 module M2 $a = Module.nesting end end $a #=> [M1::M2, M1] $a[0].name #=> "M1::M2"‎ انظر أيضا التابع constants: يعيد مصفوفة مكونة أسماء كل الثوابت التي يمكن الوصول إليها لحظة الاستدعاء. التابع new: ينشئ وحدة مجهولة ...

التابع Module.prepended‎ في روبي

يكافئ التابع prepended التابع included باستثناء أنَّه مخصص للوحدات المُرفقة (prepended modules). البنية العامة prepended(othermod)‎ المعاملات othermod‎ الوحدة الأخرى. أمثلة مثال على استخدام التابع prepended‎: module A def self.prepended(mod) puts "#{self} prepended to #{mod}" end end module Enumerable prepend A end # => prints "A prepended to Enumerable"‎ انظر أيضا التابع prepend_features: يُستدعَى في الوحدة المعطاة عندما تُرفَق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه.  التابع prepend: يستدعي التابع Module.prepend_features على كل المعاملات ...

التابع Module.prepend_features‎ في روبي

يُستدعَى التابع prepend_features في الوحدة المعطاة عندما تُرفق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه. الإعداد الافتراضي هو إحلال (overlay) ثوابت وتوابع ومتغيرات الوحدة الخاصة بهذه الوحدة في المعامل mod المُمرَّر إن لم تكن هذه الوحدة مضافةً إليه سلفًا أو إلى أحد أسلافه (ancestors). البنية العامة prepend_features(mod)→ mod‎ المعاملات mod‎ كائن من النوع Module. القيمة المعادة تعاد وحدة من النوع Module. انظر أيضا التابع prepend: يستدعي التابع Module.prepend_features على كل المعاملات المعطاة بترتيب ...

التابع Module.module_function‎ في روبي

ينشئ التابع module_function دوال وحدة (module functions) للتوابع المعطاة. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات (receiver)، كما يمكن أن تصبح متاحةً كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال النوع Module هي نسخ من الدوال الأصلية، وبالتالي يمكن تغييرها بشكل مستقل. توابع النسخة (instance-method) ستتحول إلى خاصة. وإذا تم استدعاء التابع module_function دون معاملات، فستصبح التوابع التي ستُعرَّف لاحقًا دوال وحدة (module functions). تُحوّل الوسائط النصية إلى رموز. البنية العامة module_function(symbol, ...) → self module_function(string, ...) → self‎ المعاملات ...

الصنف ‎:disabled

الصنف الزائف ‎:disabled في CSS (أي pseudo-class) يُمثِّل أي عنصر مُعطَّل، ولا يمكن اختيار أو النقر على العنصر المعطَّل ولا الكتابة فيه، ولا يقبل التركيز (focus)، ويمكن أن يكون العنصر مُفعَّلًا (enabled) أي يمكن اختياره أو النقر عليه أو الكتابة فيه. input:disabled { background: #ccc; } الشكل العام لهذا المحدد: :disabled أمثلة هذا المثال يستعرض نموذجًا بسيطًا لشحن المشتريات، ويستخدم الحدث change في JavaScript للسماح للمستخدم بتفعيل أو تعطيل بعض حقول النموذج: <form action="#"> <fieldset id="shipping"> <legend>عنوان ...

التابع ‎Module.include?‎‎ في روبي

يتحقق التابع include?‎ إن كانت الوحدة المعطاة مُضمّنة في الوحدة التي استُدعي معها أو أحد أسلافها (ancestors). البنية العامة include?(module) → true or false‎ المعاملات module‎ الوحدة المراد التحقق منها. القيمة المعادة تعاد القيمة true إن كانت الوحدة module المعطاة مُضمّنة في الوحدة التي استُدعي معها أو أحد أسلافها (ancestors)، وإلا فستُعاد القيمة false. أمثلة مثال على استخدام التابع include?‎: module A end class B include A end class C < B end B.include?(A) #=> true C.include?(A) #=> true A.include?(A) #=> false‎ ...

التابع Module.prepend‎ في روبي

يستدعي التابع prepend التابع prepend_features على كل المعاملات المعطاة بترتيب عكسي. البنية العامة prepend(module, ...) → self‎ المعاملات module‎ يمثل وحدةً من النوع Module. القيمة المعادة يعاد الكائن المعطى. انظر أيضا التابع prepend_features: يُستدعَى في الوحدة المعطاة عندما تُرفَق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه.  مصادر قسم التابع prepend‎ في الصنف Module‎ في توثيق روبي الرسمي.

التابع Object.each_object في روبي

يستدعي التابع each_object كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي. إذا حُدِّدت الوحدة (module) المراد تنفيذ الكتلة عليها، فسيستدعي التابع الكتلة للأصناف أو الوحدات المماثلة لهذه الوحدة (أو لتلك التي تكون صنفًا فرعيًا منها). يُعيد التابع each_object عدد الكائنات التي عُثر عليها. لا تُعاد الكائنات المباشرة (مثل Fixnums، و Symbols، و true، و false، و nil) أبدًا. إذا لم تُعطَ أي كتلة إلى التابع each_object، فستُعاد نسخةٌ من ...

التابع Module.included‎ في روبي

يمثِّل التابع included رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. يُفضل استخدام هذا التابع على استخدام التابع append_features إن كنت تريد تنفيذ بعض الإجراءات عند تضمين وحدة في أخرى. البنية العامة included(othermod)‎ المعاملات othermod‎ وحدة من النوع Module. أمثلة مثال على استخدام التابع included‎: module A def A.included(mod) puts "#{self} included in #{mod}" end end module Enumerable include A end # => prints "A included in Enumerable"‎ انظر أيضا التابع include?‎: ...

التابع UnboundMethod.owner‎ في روبي

يعيد التابع owner الصنف أو الوحدة (module) التي تعرف التابع الحر الذي استدعي معه. البنية العامة owner → class_or_module‎ القيمة المعادة يعاد الصنف أو الوحدة (module) التي تعرف التابع الحر. انظر أيضًا التابع original_name: يعيد الاسم الأصلي للتابع الحر الذي استُدعي معه. التابع parameters: يعيد معلومات عن معاملات التابع الحر الذي استُدعي معه. مصادر قسم التابع owner‎ في الصنف UnboundMethod‎ في توثيق روبي الرسمي.

التابع Module.using‎ في روبي

يستورد التابع using الأصناف المحسَّنة (class refinements) من الوحدة المٌمررة إليه إلى التعريف الحالي للصنف أو الوحدة. البنية العامة using(module) → self‎ المعاملات module‎ الوحدة التي سيُستورد منها الأصناف المحسَّنة. القيمة المعادة يعاد الكائن المعطى نفسه. انظر أيضا التابع refine: يحسِّن الوحدة المستقبلة (receiver) ثم يعيد الوحدة التي عُرِّفت فيها التوابع المحسَّنة. التابع used_modules: يعيد مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي. مصادر قسم التابع using‎ في الصنف Module‎ في توثيق روبي الرسمي.

التحسينات في روبي

إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...

التابع Module.new‎ في روبي

ينشئ التابع new وحدة مجهولة (anonymous module) جديدة. في حال إعطاء كتلة، فسيٌمرر إليها الوحدة (module)، وستُقيم الكتلة في سياق هذه الوحدة مثل module_eval. اضبط الوحدة وأسند إليها قيمةً ثابتةً (يبدأ اسمها بحرف كبير) إذا كنت تريد معاملتها كأنها وحدة عادية. البنية العامة new→ mod new {|mod| block }→ mod‎ القيمة المعادة تعاد وحدة مجهولة (anonymous module) جديدة. أمثلة مثال على استخدام التابع new‎: fred = Module.new do def meth1 "hello" end def meth2 ...

التابع Module.const_get‎ في روبي

يتحقق التابع const_get من وجود ثابت باسم محدد في الوحدة التي استُدعي معها. في حال تعيين المعامل inherit، فسيشمل البحث الأسلاف أيضًا (وكذلك Object إن كانت الوحدة من النوع Module). تُعاد قيمة الثابت إذا عُثر على تعريف له؛ خلا ذلك، سيُطلق الخطأ NameError. Math.const_get(:PI) #=> 3.14159265358979 سيبحث التابع const_get بشكل تكراري (recursively) عن أسماء الثوابت إذا تم توفير اسم صنف من مجال أسماء (namespaced class name). اطلع مثلًا على المثال التالي: module Foo; class Bar; end end Object.const_get 'Foo::Bar' تؤخذ الراية inherit بالحسبان ...

التابع Module.name‎ في روبي

يعيد التابع name اسم الوحدة، أو يعيد القيمة nil إن كانت الوحدة مجهولة (anonymous modules). البنية العامة name → string‎ القيمة المعادة يعاد اسم الوحدة، أو القيمة nil إن كانت الوحدة مجهولة. انظر أيضا التابع module_function: ينشئ دوال وحدة (module functions) للتابع المعطى. مصادر قسم التابع name‎ في الصنف Module‎ في توثيق روبي الرسمي.

التابع Object.extend في روبي

يُضيف التابع extend توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه. البنية العامة extend(module, ...) → obj المعاملات module الوحدة المراد إضافة توابع النسخة منها. القيم المعادة يُعاد الكائن المعطى مضافًا إليه توابع النسخة من الوحدات المُمرَّرة. أمثلة مثالٌ عن استخدام التابع extend: module Mod def hello "Hello from Mod.\n" end end class Klass def hello "Hello from Klass.\n" end end k = Klass.new k.hello ...

الصنف ‎:checked

الصنف الزائف ‎:checked في CSS (أي pseudo-class) يُمثِّل أيّة أزرار انتقاء (radio button) أو صناديق تأشير (checkbox) أو خيارات <option> في عنصر <select> تم تحديدها أو انتقاؤها. يمكن أن يُفعِّل المستخدم هذه الحالة بتفعيل أو انتقاء العنصر. :checked { margin-left: 25px; border: 1px solid blue; } ملاحظة: أغلبية المتصفحات تعامل عناصر <option> كعناصر مُستبدَلة (replaced elements)، ومدى تطبيقها للأنماط المرتبطة بالصنف الزائف ‎:checked يختلف من متصفحٍ لآخر. الشكل العام لهذا المحدد: :checked أمثلة لاحظ طريقة تنسيق أزرار الانتقاء (radio buttons) ...

التابع Module.included_modules‎ في روبي

يعيد التابع included_modules قائمة بالوحدات المضمنة في الوحدة التي استُدعي معها. البنية العامة included_modules → array‎ القيمة المعادة تعاد مصفوفة تحوي الوحدات المضمنة في الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع included_modules‎: module Mixin end module Outer include Mixin end Mixin.included_modules #=> [] Outer.included_modules #=> [Mixin]‎ انظر أيضا التابع include: يستدعي التابع Module.append_features على كل المعاملات الممررة بترتيب عكسي. التابع included: يُستدعى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. التابع include?‎: يتحقق إن كانت الوحدة المعطاة مُضمّنةً ...

التابع Module.autoload‎ في روبي

يُُسجل التابع autoload اسم الملف المراد تحميله (باستخدام Kernel::require) في أول مرة يتم فيها الوصول إلى الوحدة الممررة (والتي قد تكون سلسلةً نصيةً أو رمزًا) في مجال أسماء الوحدة التي استُدعيت معه. البنية العامة autoload(module, filename)→ nil‎ المعاملات module‎ سلسلة نصية أو رمز يمثل الوحدة. filename‎ اسم الملف. القيمة المعادة تعاد القيمة nil. أمثلة مثال على استخدام التابع autoload‎: module A end A.autoload(:B, "b") A::B.doit # autoloads "b"‎ انظر أيضا التابع autoload?‎: يعيد اسم ...

التابع Module.extend_object‎ في روبي

يوسع التابع extend_object الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]). هذا هو التابع المستخدم من قبل Object.extend. البنية العامة extend_object(obj) → obj‎ المعاملات obj‎ الكائن المراد توسعته. القيمة المعادة يعاد الكائن obj بعد توسيعه. أمثلة مثال على استخدام التابع extend_object‎: module Picky def Picky.extend_object(o) if String === o puts "Can't add Picky to a String" else puts ...

التابع Object.dup في روبي

ينتج التابع dup نسخةً سطحية (shallow copy) من الكائن. تُنسَخ متغيرات النسخة (instance variables) من الكائن، ولكن لا تُنسَخ الكائنات التي تشير إليها (referenced objects). يَنسخ التابع dup الحالة التالفة (tainted state) من الكائن. قد يملك هذا التابع سلوكًا محدَّدًا بالصنف (class-specific behavior)، إذا كان كذلك، سيُوثَّق هذا السلوك تحت التابع ‎.initialize_copy من الصنف نفسه. ما هو الفرق بين التابع clone والتابع dup؟ عمومًا، قد يمتلك التابعين clone و dup دلالاتٍ مختلفةٍ في الأصناف السليلة (descendant classes). لمَّا كان التابع ...

التابع Method.owner‎ في روبي

يعيد التابع owner الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. البنية العامة owner → class_or_module‎ القيمة المعادة يعاد الصنف أو الوحدة التي تُعرِّف الكائن Method المعطى. انظر أيضا التابع original_name: يعيد الاسم الأصلي للتابع الذي استُدعي معه. التابع parameters: يعيد معلومات عن وسائط التابع الذي استُدعي معه. مصادر قسم التابع owner‎ في الصنف Method‎ في توثيق روبي الرسمي.

التابع Method.original_name‎ في روبي

يعيد التابع original_name الاسم الأصلي للكائن Method الذي استُدعي معه. البنية العامة original_name → symbol‎ القيمة المعادة يعاد رمزٌ يمثِّل الاسم الأصلي للكائن Method المعطى. أمثلة مثال على استخدام التابع original_name‎: class C def foo; end alias bar foo end C.instance_method(:bar).original_name # => :foo‎ انظر أيضا التابع name: يعيد اسم التابع. التابع owner: يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. مصادر قسم التابع original_name‎ في الصنف Method‎ في توثيق روبي الرسمي.

التابع UnboundMethod.original_name‎ في روبي

يعيد التابع original_name الاسم الأصلي التابع الحر الذي استُدعي معه. البنية العامة original_name → symbol‎ القيمة المعادة يعاد رمزٌ يمثِّل الاسم الأصلي التابع الحر المعطى. أمثلة مثال على استخدام التابع original_name‎: class C def foo; end alias bar foo end C.instance_method(:bar).original_name # => :foo‎ انظر أيضًا التابع name: يعيد اسم التابع. التابع owner: يعيد الصنف أو الوحدة (module) التي تعرف التابع الحر. مصادر قسم التابع original_name‎ في الصنف UnboundMethod‎ في توثيق روبي الرسمي.

التابع Module.freeze‎ في روبي

يمنع التابع freeze إجراء المزيد من التعديلات على الوحدة. البنية العامة freeze → mod‎ القيمة المعادة يعاد الكائن المعطى نفسه. انظر أيضا التابع extended: يكافئ التابع included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). التابع include: يستدعي التابع Module.append_features على كل المعاملات الممررة بترتيب عكسي. مصادر قسم التابع freeze‎ في الصنف Module‎ في توثيق روبي الرسمي.

التابع ‎Module.const_defined?‎‎ في روبي

يتحقق التابع const_defined?‎ مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحوي الثابت المعطى. Float.const_defined?(:EPSILON) #=> true, found in Float itself Float.const_defined?("String") #=> true, found in Object (ancestor) BasicObject.const_defined?(:Hash) #=> false إذا كانت الوحدة من النوع Module، فسيتم إضافة إلى ذلك فحص Object وكذلك أسلافه. Math.const_defined?(:String) #=> true, found in Object في كل الأصناف أو الوحدات المفحوصة، إذا لم يكن الثابت موجودًا وكان التحميل التلقائي (autoload) مفعلًا له، ...

التابع Module.method_removed‎ في روبي

يستدعى التابع method_removed في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). البنية العامة method_removed(method_name)‎ المعاملات method_name‎ اسم تابع النسخة. أمثلة مثال على استخدام التابع method_removed‎: module Chatty def self.method_removed(method_name) puts "Removing #{method_name.inspect}" end def self.some_class_method() end def some_instance_method() end class << self remove_method :some_class_method end remove_method :some_instance_method end‎ ناتج تنفيذ هذا المثال هو: Removing :some_instance_method انظر أيضا التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو ...

التابع Module.include‎ في روبي

يستدعي التابع include التابع append_features على كل المعاملات المُمرَّرة بترتيب عكسي. البنية العامة include(module, ...) → self‎ المعاملات module‎ يمثل الوحدة التي سيُستدعَى التابع append_features عليها. ... يمثل الوحدات الأخرى التي سيُستدعَى التابع append_features عليها بترتيب عكسي. القيمة المعادة يعاد الكائن المعطى. انظر أيضا التابع include?‎: يتحقق إن كانت الوحدة المعطاة مُضمّنة في الوحدة التي استُدعي معها أو في أحد أسلافها (ancestors). التابع included: يُستدعى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. التابع included_modules: يعيد قائمة بالوحدات المضمنة في ...

التحميل التلقائي وإعادة تحميل الثوابت في ريلز

يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي. ماهية autoload_paths وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج. كيفية عمل التحميل التلقائي للثابت. ماهية need_dependency. كيفية عمل إعادة التحميل للثابت. حلول للتحميل التلقائي المشترك. المقدمة تسمح لغة ريلز بكتابة تطبيقات كما لو حملت الشيفرة الخاص بها مسبقًا. في أصناف برنامج روبي عادي، تحتاج إلى تحميل جميع اعتماديته (dependencies): require 'application_controller' require 'post' class PostsController < ApplicationController def index ...

التابع Module.method_added‎ في روبي

يُستدعَى التابع method_added في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). البنية العامة method_added(method_name)‎ المعاملات method_name‎ اسم تابع النسخة. أمثلة مثال على استخدام التابع method_added‎: module Chatty def self.method_added(method_name) puts "Adding #{method_name.inspect}" end def self.some_class_method() end def some_instance_method() end end‎ ناتج تنفيذ هذا المثال هو: Adding :some_instance_method انظر أيضا التابع instance_methods: يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في ...

التابع Module.ancestors‎ في روبي

يعيد التابع ancestors قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة التي استُدعيت معها (بما في ذلك الوحدة نفسها). البنية العامة ancestors → array‎ القيمة المعادة تعاد قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة المعطاة (بما في ذلك الوحدة نفسها). أمثلة مثال على استخدام التابع ancestors‎: module Mod include Math include Comparable prepend Enumerable end Mod.ancestors #=> [Enumerable, Mod, Comparable, Math] Math.ancestors #=> [Math] Enumerable.ancestors #=> [Enumerable]‎ انظر أيضا التابع alias_method: ينشئ اسمًا ...

التابع TracePoint.defined_class‎ في روبي

يُعيد التابع defined_class صنف أو وحدة التابع المُستدعى. class C; def foo; end; end trace = TracePoint.new(:call) do |tp| p tp.defined_class #=> C end.enable do C.new.foo end إذا تم تعريف التابع بواسطة وحدة، فستعاد تلك الوحدة. module M; def foo; end; end class C; include M; end; trace = TracePoint.new(:call) do |tp| p tp.defined_class #=> M end.enable do C.new.foo end ملحوظة: يُعيد التابع defined_class صنفًا مفردًا (singleton class). وسيط الكتلة السادس في التابع Kernel.set_trace_func يُمرَّر الصنف الأصليً (original class) للكائن عبر الصنف المفرد. هذا أحد الفوارق ...

التابع ‎Module.autoload?‎‎ في روبي

يعيد التابع autoload?‎ اسم الملف الذي سيُحمل إن كان المعامل المعطى مسجلًا عبر التابع autoload في مجال أسماء الوحدة التي استُدعي معها. البنية العامة autoload?(name)→ String or nil‎ القيمة المعادة تعاد سلسلة نصية تمثِّل اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا عبر التابع autoload في مجال أسماء الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع autoload?‎: module A end A.autoload(:B, "b") A.autoload?(:B) #=> "b"‎ انظر أيضا التابع autoload: يُُسجل اسم الملف ...

التابع Module.append_features‎ في روبي

عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع append_features في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه. البنية العامة append_features(mod)→ mod‎ الإعداد الافتراضي لروبي هو إضافة ثوابت، وتوابع، ومتغيرات هذه الوحدة إلى المعامل mod إذا لم تكن هذه الوحدة مضافةً سلفًا هي أو أحد أسلافها (ancestors) إلى المعامل mod. المعاملات mod‎ الوحدة التي ستطبق عليها العملية. القيمة المعادة تعاد الوحدة المعطاة بعد إضافة ثوابت وتوابع ومتغيرات الوحدة المعطاة. انظر أيضا التابع ancestors: يعيد قائمة مكونة ...

التابع Module.undef_method‎ في روبي

يمنع التابع undef_method الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. سلوك هذا التابع مخالف لسلوك التابع remove_method الذي يحذف التابع من الصنف المعين؛ ستبحث روبي في الأصناف العليا (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل. البنية العامة undef_method(symbol) → self undef_method(string) → self‎ المعاملات symbol‎ رمز يمثل التابع. string‎ سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المعادة يعاد الكائن المعطى نفسه. أمثلة مثال على استخدام التابع undef_method‎: class Parent def hello ...

التابع Module.‎method_defined?‎‎ في روبي

يتحقق التابع method_defined?‎ إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف (أو في الوحدات المُتضمنة فيه، وإن كان صنفًا في أسلافه). تتم مطابقة التوابع العامة والمحمية. تٌحوّل الوسائط النصية إلى رموز. البنية العامة method_defined?(symbol) → true or false method_defined?(string) → true or false‎ المعاملات symbol‎ رمز يمثل التابع. string‎ سلسلة نصية تمثل التابع. القيمة المعادة تعاد القيمة true إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف. أمثلة مثال على استخدام التابع method_defined?‎: module A def method1() end ...

التابع Module.private_instance_methods‎ في روبي

يعيد التابع private_instance_methods قائمة بتوابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. إن مُرِّر إلى التابع القيمة false، فلن تُضمّن توابع الأسلاف (ancestors). البنية العامة private_instance_methods(include_super=true) → array‎ المعاملات include_super‎ قيمة منطقية إن كانت false، فلن تُضمّن توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تحوي توابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. أمثلة مثال على استخدام التابع private_instance_methods‎: module Mod def method1() end private :method1 def method2() end end Mod.instance_methods ...

التابع Module.alias_method‎ في روبي

ينشئ التابع alias_method اسمًا جديدًا (بديلًا) لتابع محدَّد. يمكن استخدام هذا التابع للاحتفاظ بإمكانية الوصول إلى التوابع التي أُعيد تعريفها. البنية العامة alias_method(new_name, old_name)→ self‎ المعاملات new_name‎ الاسم الجديد للتابع old_name‎. old_name‎ اسم التابع القديم المراد إنشاء اسم جديد بديل له. القيمة المعادة يعاد الكائن المعطى. أمثلة مثال على استخدام التابع alias_method‎: module Mod alias_method :orig_exit, :exit def exit(code=0) puts "Exiting with code #{code}" orig_exit(code) end end include Mod exit(99)‎ ناتج تنفيذ الشيفرة هو: Exiting with ...

التابع Module.public_method_defined?‎ في روبي

يتحقق التابع public_method_defined?‎ إن كان التابع العام (public method) المعطى معرفًا في الوحدة/الصنف (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا). البنية العامة public_method_defined?(symbol)→ true or false public_method_defined?(string)→ true or false‎ المعاملات symbol‎ رمز يمثل التابع. string‎ سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المُعادة يعيد التابع public_method_defined?‎ القيمة true إن كان التابع العام المعطى معرفًا بواسطة في الوحدة/الصنف (أو الوحدات المتضمنة فيه، أو أسلافه إن كان صنفا)، وإلا فسيعيد false. أمثلة مثال على استخدام التابع public_method_defined?‎: module A ...

التابع Object.singleton_methods في روبي

يُعيد التابع singleton_methods مصفوفةً تحوي أسماء توابع الكائن المنفردة (singleton methods). إذا مُرِّرت القيمة true إلى التابع، فستتضمَّن القائمة توابع الوحدات المُضمَّنة في الكائن المعطى أيضًا. تُعاد فقط التوابع المنفردة العامَّة والمحميَّة. البنية العامة singleton_methods(all=true) → array المعاملات all معامل اختياري يأخذ إمَّا القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد مصفوفةٌ تحوي أسماء التوابع المنفردة للكائن المعطى إذا لم يعطَ المعامل all أو كانت قيمته true. إذا كانت قيمة المعامل all هي false، فستتضمَّن تلك المصفوفة المعادة التوابع ...

التابع Method.parameters‎ في روبي

يعيد التابع parameters معلومات عن معاملات الكائن Method الذي استُدعي معه. البنية العامة parameters → array‎ القيمة المعادة تعاد مصفوفة تحوي معلومات عن وسائط الكائن Method المعطى. أمثلة مثال على استخدام التابع parameters‎: def foo(bar); end method(:foo).parameters #=> [[:req, :bar]] def foo(bar, baz, bat, &blk); end method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:req, :bat], [:block, :blk]] def foo(bar, *args); end method(:foo).parameters #=> [[:req, :bar], [:rest, :args]] def foo(bar, baz, *args, &blk); end method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:rest, :args], [:block, :blk]]‎ انظر أيضا التابع owner: يعيد الصنف ...

التابع ?Object.is_a في روبي

يتحقَّق التابع ?is_a إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا (superclasses) للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن. البنية العامة is_a?(class) → true or false المعاملات class الصنف المراد التحقق منه. القيم المعادة تُعاد القيمة true إذا كان الصنف class هو نفسه صنف الكائن المعطى، أو أنه أحد الأصناف العليا أو الوحدات المُضمَّنة في الكائن المعطى؛ خلاف ذلك، تُعاد القيمة false. أمثلة مثالٌ عن استخدام التابع ...

التابع ?Object.kind_of في روبي

يتحقَّق التابع ?kind_of إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا  (superclasses) لذلك الكائن أو الوحدات المُضمَّنة فيه. البنية العامة kind_of?(class) → true or false المعاملات class الصنف المراد التحقق منه. القيم المعادة تُعاد القيمة true إذا كان الصنف class هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا لهأو الوحدات المُضمَّنة فيه؛ خلاف ذلك، تُعاد القيمة false. أمثلة مثالٌ عن استخدام التابع ?kind_of: module M; end class ...

التابع new في الصنف Class في روبي

يستدعي التابع new التابعَ allocate لإنشاء كائن جديد من الصنف class، ثم يستدعي التابع initialize مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة. هذا هو التابع الذي يُستدعى كلما أريد إنشاء كائن باستخدام التابع ‎.new. البنية العامة new(args, ...) → obj المعاملات args الوسيط المراد تمريره إلى التابع initialize عند استدعائه. ... الوسائط الأخرى المراد تمريرها إلى التابع initialize عند استدعائه. القيم المعادة يعاد الكائن الذي أنشئ. انظر أيضًا التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع 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 ...

التابع allocate في الصنف Class في روبي

يحجز التابع allocate مساحةً من الذاكرة لكائن جديد من الصنف class دون استدعاء التابع initialize مع النسخة (instance) الجديدة. يجب أن يكون الكائن المُعاد نسخةً من الصنف class. البنية العامة allocate() → obj القيم المعادة يعاد كائن من الصنف class. أمثلة مثال على استخدام التابع allocate: klass = Class.new do def initialize(*args) @initialized = true end def initialized? @initialized || false end end klass.allocate.initialized? #=> false انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من ...

التابع inherited في الصنف Class في روبي

يُستدعَى التابع inherited كرد نداء في كل مرة يُنشأ فيها صنف فرعي (subclass) من الصنف الحالي. البنية العامة inherited(subclass) أمثلة مثال على استخدام التابع inherited: class Foo def self.inherited(subclass) puts "New subclass: #{subclass}" end end class Bar < Foo end class Baz < Bar end انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب (superclass) الممرر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع new في الصنف Class في روبي

يُنشئ التابع new صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( superclass) المُمرَّر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف (class object) وإعطائه قيمة ثابتة. إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع class_eval. عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي. البنية العامة new(super_class=Object) ...

التابع Module.instance_methods‎ في روبي

يعيد التابع instance_methods مصفوفةً تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل. بالنسبة للوحدات، ستكون التوابع هي العامة والمحمية. أما بالنسبة للأصناف، فستكون تلك التوابع هي توابع النسخ (وليس التوابع المفردة [singleton methods]). إذا كان أعطي المعامل الاختيار وكانت قيمته false، فلن يتم تضمين توابع الأسلاف (ancestors). البنية العامة instance_methods(include_super=true)→ array‎ المعاملات include_super‎ قيمة منطقية إن أعطيت وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تحتوي على أسماء توابع النسخ العامة والمحمية (protected) ...

التابع Module.‎‎private_method_defined?‎‎‎ في روبي

يتحقق التابع private_method_defined?‎ إن كان التابع الخاص (private) المعطى معرَّفًا من قِبَل _ mod_ (أو الوحدات المتضمنة فيه، وأسلافه [ancestors] إن كان صنفًا). البنية العامة private_method_defined?(symbol) → true or false private_method_defined?(string) → true or false‎ المعاملات symbol‎ رمز يمثل التابع الخاص. string‎ سلسلة نصية تمثل التابع الخاص. يحول هذا المعامل - إن أعطي - إلى رمز. القيمة المعادة تعاد القيمة true إن كان التابع الخاص (private) المعطى معرفًا من طرف _ mod_ (أو الوحدات المتضمنة فيه، وأسلافه [ancestors] إن كان صنفًا). خلا ...

التابع UnboundMethod.parameters‎ في روبي

يعيد التابع parameters معلومات عن معاملات التابع الحر الذي استُدعي معه على شكل مصفوفة. البنية العامة parameters → array‎ القيمة المعادة تعاد مصفوفة تحوي معلومات عن معاملات التابع الحر الذي استُدعي معه على شكل مصفوفة. أمثلة مثال على استخدام التابع parameters‎: def foo(bar); end method(:foo).parameters #=> [[:req, :bar]] def foo(bar, baz, bat, &blk); end method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:req, :bat], [:block, :blk]] def foo(bar, *args); end method(:foo).parameters #=> [[:req, :bar], [:rest, :args]] def foo(bar, baz, *args, &blk); end method(:foo).parameters #=> [[:req, :bar], [:req, :baz], [:rest, ...

التابع Module.attr_accessor‎ في روبي

يحدد التابع attr_accessor خاصية مسماة (named attribute) لهذه الوحدة، إذ يكون الاسم هو نتيجة التعبير symbol.id2name، وينشئ متغير نسخة (@name) وتابع وصول مقابل له (access method) لقراءته. ينشئ أيضًا تابعًا يُسمى ‎name=‎ لتعيين الخاصية. تحول الوسائط النصية إلى رموز. البنية العامة attr_accessor(symbol, ...) → nil attr_accessor(string, ...) → nil‎ المعاملات symbol‎ رمز لتحديد الخاصية. string‎ سلسلة نصية لتحديد الخاصية. القيمة المعادة تعاد القيمة nil. أمثلة مثال على استخدام التابع attr_accessor‎: module Mod attr_accessor(:one, :two) end Mod.instance_methods.sort #=> [:one, :one=, :two, :two=]‎ ...

التابع Module.protected_method_defined?‎ في روبي

يتحقق التابع protected_method_defined?‎ إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). البنية العامة protected_method_defined?(symbol)→ true or false protected_method_defined?(string)→ true or false‎ المعاملات symbol‎ رمز يمثل التابع. string‎ سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المعادة تعاد القيمة true إن كان التابع المحمي المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). خلا ذلك، تعاد القيمة false. أمثلة مثال على استخدام التابع protected_method_defined?‎: module ...

Ruby/Topics

تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...

التابع Module.private‎ في روبي

يعين التابع private المرئية (visibility) الافتراضية للتوابع المحددة لاحقًا إلى المرئية private الخاصة إن استدعي دون تمرير أي شيء إليه. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط مرئية هذه التوابع إلى المرئية private الخاصة. تذكر أنه لإظهار تابع خاص على RDoc، استخدم :doc:. البنية العامة private → self private(symbol, ...) → self private(string, ...) → self‎ المعاملات symbol‎ رمز يمثل التابع المراد ضبط مرئيته إلى خاصة. string‎ سلسلة نصية تمثل التابع المراد ضبط مرئيته إلى خاصة. يحول هذا ...

التابع Marshal.dump‎ في روبي

يُسلسل (Serializes) التابع dump الكائن المعطى وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن من النوع IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية. البنية العامة dump( obj [, anIO] , limit=-1 ) → anIO‎ في حال تمرير المعامل limit، فسيقتصر التابع dump على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit سالبًا، لن يكون هناك أي تحقق من للعمق. لا يمكن للتابع Marshal تفريغ (dump) الكائنات التالية: الوحدات أو الأصناف المجهولة (anonymous Class/Module). الكائنات المرتبطة بالنظام (مثل ...

التابع Object.methods في روبي

يُعيد التابع methods قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى. تتضمن هذه القائمة جميع التوابع المتاح الوصول إليها في أسلاف (ancestors) الكائن. إذا مُرِّرت القيمة false للمعامل الاختياري الوحيد في التابع، فسيُعيد مصفوفةً من توابع الكائن (أو عددًامحدَّدًا من الكائنات) المنفردة (singleton) العامَّة والمحميَّة. لن تحتوي هذه المصفوفة على توابع الوحدات المُضمَّنة في الكائن (أو عددًا محدَّدًا من الكائنات). البنية العامة methods(regular=true) → array المعاملات regular معامل اختياري يأخذ القيمة true (الافتراضيَّة) أو flase. القيم المعادة تُعاد مصفوفةٌ تحوي جميع توابع ...

الصنف Data في روبي

الصنف Data هو صنف مهمل. كان يعدُّ الصنف الأساس لملحقات C التي تستعمل Data_Make_Struct أو Data_Wrap_Struct. مصادر صفحة الصنف Data في توثيق روبي الرسمي.

الصنف FrozenError في روبي

يرمى الاستثناء FrozenError عند محاولة تعديل كائن مجمد. [1, 2, 3].freeze << 4 عند تنفيذ هذه الشيفرة، يرمى الاستثناء: FrozenError: can't modify frozen Array انظر أيضًا التابع freeze: يجمد السلسلة النصية التي استُدعيت معه، أي يجعلها غير قابلة للتعديل. مصادر صفحة الصنف FrozenError في توثيق روبي الرسمي.

الصنف 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 جميع الأحداث المتاحة. ملحوظة: لا تعتمد على مجموعة الأحداث الحالية، إذ أن هذه القائمة عرضةٌ للتغيير. بدلًا من ذلك، يُنصَح بتحديد نوع ...

الصنف NoMethodError في روبي

يُطلق الاستثناء NoMethodError عند استدعاء تابعٍ مع مستقبِل (receiver) غير مُعرَّف فيه مع فشل الاستجابة للتابع method_missing. "hello".to_ary سيُطلق الاستثناء NoMethodError عند تنيفذ الشيفرة السابقة بالشكل: NoMethodError: undefined method `to_ary' for "hello":String توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً من النوع NoMethodError للتابع ذي الاسم المعطى مع الوسائط المُمرَّرة. توابع النسخة العامة (Public Instance Methods) args يعيد الوسائط التي تم تمريرها كمعامل ثالث إلى الباني new. ?private_call مصادر قسم الصنف NoMethodErrorفي توثيق روبي الرسمي.

الصنف Regexp في روبي

تمثل كائنات الصنف Regexp التعابير النمطية التي تُستخدم لمطابقة نمط (pattern) معيّن في سلسلة نصية. تُنشَأ التعابير النمطية باستخدام الصياغتين /.../ و ‎%r{...}‎، أو باستعمال الباني new. التعابير النمطية هي أنماط تصف محتويات السلسلة النصية. يمكن استخدامها للتحقق من أنّ سلسلة نصية تحتوي على نمط معين، أو لاستخراج الأجزاء المُطابقة منها. عادةً ما يتم تحديد التعبير النمطي بخط مائل (/) كما يوضح المثال التالي: /hay/ =~ 'haystack' #=> 0 /y/.match('haystack') #=> #<MatchData "y"> ‎ إذا احتوت سلسلة نصية على النمط، فسيقال ...

الصنف NilClass في روبي

الصنف NilClass هو صنفٌ للكائن nil المُفرد. توابع النسخ العامة (Public Instance Methods) & يجري المعامل & العملية And المنطقية على الكائن المعطى والقيمة nil أو false. === يتحقق المعامل === من تساوي كائنين مع بعضهما بعضًا. ^ يجري المعامل ^ العملية XOR المنطقية على الكائن المعطى والقيمة nil أو false. | يجري المعامل | العملية OR المنطقية على الكائن المعطى والقيمة nil أو false. inspect يعيد دائمًا السلسلة النصية "nil". nil?‎ يتحقق إن كان الكائن الذي استدعي معه هو الكائن nil. rationalize يعيد الصفر كعدد جذري (rational). to_a يعيد دائمًا مصفوفة فارغة. to_c يحول الصفر إلى عدد عقدي. to_f يعيد ...

الصنف SyntaxError في روبي

يطلق الاستثناء SyntaxError عند اكتشاف خطأ في صياغة الشيفرة البرمجية لروبي. eval("1+1=2") سيًطلق الاستثناء SyntaxError بالشكل التالي: SyntaxError: (eval):1: syntax error, unexpected '=', expecting $end توابع الصنف العامة new ينشئ استثناءً جديدًا من النوع SyntaxError. مصادر صفحة الصنف SyntaxError في توثيق روبي الرسمي.

الصنف RangeError في روبي

يُطلق الاستثناء RangeError عندما تكون قيمة عددية معطاة خارج النطاق. [1, 2, 3].drop(1 << 100) سيُطلق الاستثناء RangeError بعد تنفيذ هذه الشيفرة: RangeError: bignum too big to convert into `long' مصادر صفحة الصنف RangeError في توثيق روبي الرسمي.

الصنف File في روبي

الصنف File هو اختصار لأي كائن ملفٍ قابل للوصول عبر البرنامج ومرتبط عن كثب بالصنف IO. يتضمن الصنف File توابع الوحدة FileTest كتوابع صنفٍ مما يسمح لك باستعمال File.exist?("foo")‎ مثلًا. في شرح توابع الصنف File التالية، تكون بتات الأذونات (permission bits) مجموعة من البتات التي تعتمد على المنصة المستعملة والتي تشير إلى أذونات الملف. في الأنظمة الشبيهة بيونكس، تُعرض الأذونات على شكل مجموعة من ثلاثة ثمانيات (octets)؛ الأولى من أجل المالك، والثانية من أجل المجموعة المالكة، والثالثة تخص الأشخاص الآخرين. ...

الصنف Queue في روبي

يُنفِّذ الصنف Queue طوابير الانتظار متعدِّدة المنتجين (multi-producer)، ومتعدِّدة المستهلكين (multi-consumer). إنَّه مفيدٌ بشكلٍ خاصٍّ في البرمجة المعتمدة على الخيوط (threaded programming) عندما يتحتَّم على المعلومات أن تُتبادل بأمان بين خيوطٍ (threads) متعدَّدة. يُنفِّذ الصنف Queue كل دلالات القفل المطلوبة. يُنفِّذ الصنف طوابير الانتظار التي من النوع FIFO (من يدخل أولًا يخرج أولًا). في هذا النوع، المهام التي تضاف أولًا في الطابور هي المهام التي تعاد أولًا منه. queue = Queue.new producer = Thread.new do 5.times do |i| ...

الصنف Fiber في روبي

الألياف (Fibers) هي حقولٌ أساسيّةٌ (primitives) تُستخدم في تنفيذ تعدّد المهام التشاركي (cooperative concurrency) للمهام الخفيفة (light weight) أي التي تستهلك جزءًا صغيرًا من الذاكرة. تعني أساسيًّا إنشاء كتل شيفرات يمكن إيقافها مؤقتًا واستئنافها، كما هو الحال مع الخيوط (threads). الفرق الأساسي في الألياف أنه لا يمكن إيقافها مؤقّتًا من قبل مهام أخرى تنفذ من قبل النظام (Preemption) وأن الجدولة (scheduling) يجب أن تتمَّ من قبل المبرمج وليس من قبل الآلة الافتراضية (virtual machine). على عكس نماذج تعدد المهام التشاركية ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).