نتائج البحث

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

الصنف 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، لا ...

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