نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف Module في روبي
الصنف Module هو مجموعة من التوابع والثوابت. التوابع الموجودة في الوحدات Module قد تكون إما توابع نسخة (instance methods)، أو توابع وحدة (module methods). توابع النسخة تظهر كتوابع في صنفٍ عند تضمين الوحدة، وذلك على خلاف توابع الوحدة. وعلى النقيض، يمكن استدعاء توابع الوحدة دون إنشاء كائن يُغلفها، بينما قد لا يمكن فعل ذلك مع توابع النسخة. انظر صفحة module_function. في الأمثلة الموجودة في صفحات التوابع، يشير المعامل sym إلى رمز، والذي قد يكون إما سلسلة نصية، أو كائنًا من النوع ...
الوحدات (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(). وتُضاف ...
المعامل <= الخاص بالصنف 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 إن لم تكن بينهما أي علاقة. خلا ذلك، ...
التابع 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.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.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) من الوحدة في التعريف الحالي للصنف أو الوحدة. ...
التابع 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.prepend في روبي
يستدعي التابع prepend التابع prepend_features على كل المعاملات المعطاة بترتيب عكسي. البنية العامة prepend(module, ...) → self
المعاملات module يمثل وحدةً من النوع Module. القيمة المعادة يعاد الكائن المعطى. انظر أيضا التابع prepend_features: يُستدعَى في الوحدة المعطاة عندما تُرفَق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه. مصادر قسم التابع prepend في الصنف Module في توثيق روبي الرسمي.
التابع 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
المعاملات ...
الوحدات والأصناف في روبي
الوحدات تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. يستخدم نطاق الأسماء لتنظيم الشيفرة البرمجية ضمن مجموعات مستقلّة تمنع تداخل التوابع والمتغيّرات ذات الأسماء المتشابهة فيما بينها. فعلى سبيل المثال، نطاق الأسماء IRB يوفّر عمليات irb والتي تمنع التصادم مع الاسم الشائع "Context". وظيفة الخلط الضمني (Mix-in) تسمح بمشاركة توابع مشتركة عبر عدد من الأصناف أو الوحدات، إذ يأتي مع لغة روبي على سبيل المثال الوحدة Enumerable التي توفّر ...
التابع 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?: ...
التابع 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.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.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 ...
التابع 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 في توثيق روبي الرسمي.
التابع 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.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 بالحسبان ...
التحسينات في روبي
إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...
التابع 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 ...
التابع 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. ...
الصنف Class في روبي
تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class. عادةً، يمكن عادةً إنشاء صنف جديد بالشكل التالي: class Name
# تكتب هنا الشيفرة التي تعرف سلوك الصنف
end
عندما يُنشَأ صنف جديد، يهيَّأ كائن من النوع Class ويسند إلى ثابت عام (global constant، هو Name في المثال السابق). عند استدعاء Name.new لإنشاء كائن جديد، يُنفَّذ التابع new الخاص بالصنف Class بشكل افتراضي. يمكن إثبات ذلك من خلال إعادة تعريف التابع new: class Class
alias old_new ...
التابع Object.dup في روبي
ينتج التابع dup نسخةً سطحية (shallow copy) من الكائن. تُنسَخ متغيرات النسخة (instance variables) من الكائن، ولكن لا تُنسَخ الكائنات التي تشير إليها (referenced objects). يَنسخ التابع dup الحالة التالفة (tainted state) من الكائن. قد يملك هذا التابع سلوكًا محدَّدًا بالصنف (class-specific behavior)، إذا كان كذلك، سيُوثَّق هذا السلوك تحت التابع .initialize_copy من الصنف نفسه. ما هو الفرق بين التابع clone والتابع dup؟ عمومًا، قد يمتلك التابعين clone و dup دلالاتٍ مختلفةٍ في الأصناف السليلة (descendant classes). لمَّا كان التابع ...
التابع Module.freeze في روبي
يمنع التابع freeze إجراء المزيد من التعديلات على الوحدة. البنية العامة freeze → mod
القيمة المعادة يعاد الكائن المعطى نفسه. انظر أيضا التابع extended: يكافئ التابع included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). التابع include: يستدعي التابع Module.append_features على كل المعاملات الممررة بترتيب عكسي. مصادر قسم التابع freeze في الصنف Module في توثيق روبي الرسمي.
التابع Method.owner في روبي
يعيد التابع owner الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. البنية العامة owner → class_or_module
القيمة المعادة يعاد الصنف أو الوحدة التي تُعرِّف الكائن Method المعطى. انظر أيضا التابع original_name: يعيد الاسم الأصلي للتابع الذي استُدعي معه. التابع parameters: يعيد معلومات عن وسائط التابع الذي استُدعي معه. مصادر قسم التابع owner في الصنف Method في توثيق روبي الرسمي.
التابع 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) مفعلًا له، ...
التابع 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.include في روبي
يستدعي التابع include التابع append_features على كل المعاملات المُمرَّرة بترتيب عكسي. البنية العامة include(module, ...) → self
المعاملات module يمثل الوحدة التي سيُستدعَى التابع append_features عليها. ... يمثل الوحدات الأخرى التي سيُستدعَى التابع append_features عليها بترتيب عكسي. القيمة المعادة يعاد الكائن المعطى. انظر أيضا التابع include?: يتحقق إن كانت الوحدة المعطاة مُضمّنة في الوحدة التي استُدعي معها أو في أحد أسلافها (ancestors). التابع included: يُستدعى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. التابع included_modules: يعيد قائمة بالوحدات المضمنة في ...
التابع 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: ينشئ اسمًا ...
التابع Module.autoload? في روبي
يعيد التابع autoload? اسم الملف الذي سيُحمل إن كان المعامل المعطى مسجلًا عبر التابع autoload في مجال أسماء الوحدة التي استُدعي معها. البنية العامة autoload?(name)→ String or nil
القيمة المعادة تعاد سلسلة نصية تمثِّل اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا عبر التابع autoload في مجال أسماء الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع autoload?: module A
end
A.autoload(:B, "b")
A.autoload?(:B) #=> "b"
انظر أيضا التابع 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?: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو ...
الصنف Symbol في روبي
تمثل كائنات الصنف Symbol أسماء وسلاسل نصية داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين :name و :"string"، أو بواسطة التوابع to_sym. سيتم إنشاء نفس الرمز (نفس الكائن Symbol) لاسم أو سلسلة نصية معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان Fred ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز Symbol :Fred نفس الكائن في جميع السياقات الثلاث. module One
class Fred
end
...
التابع Module.append_features في روبي
عندما تكون هذه الوحدة مُضمّنة في وحدة أخرى، فستستدعي روبي التابع append_features في هذه الوحدة، وتمرر إليه الوحدة المستقبلة (receiving module) التي استُدعيت معه. البنية العامة append_features(mod)→ mod
الإعداد الافتراضي لروبي هو إضافة ثوابت، وتوابع، ومتغيرات هذه الوحدة إلى المعامل mod إذا لم تكن هذه الوحدة مضافةً سلفًا هي أو أحد أسلافها (ancestors) إلى المعامل mod. المعاملات mod الوحدة التي ستطبق عليها العملية. القيمة المعادة تعاد الوحدة المعطاة بعد إضافة ثوابت وتوابع ومتغيرات الوحدة المعطاة. انظر أيضا التابع ancestors: يعيد قائمة مكونة ...
التابع 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 ...
التحميل التلقائي وإعادة تحميل الثوابت في ريلز
يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي. ماهية autoload_paths وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج. كيفية عمل التحميل التلقائي للثابت. ماهية need_dependency. كيفية عمل إعادة التحميل للثابت. حلول للتحميل التلقائي المشترك. المقدمة تسمح لغة ريلز بكتابة تطبيقات كما لو حملت الشيفرة الخاص بها مسبقًا. في أصناف برنامج روبي عادي، تحتاج إلى تحميل جميع اعتماديته (dependencies): require 'application_controller'
require 'post'
class PostsController < ApplicationController
def index
...
التابع 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: يعيد الصنف ...
التابع 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=]
...