نتائج البحث

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

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

يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42 ستطلق الاستثناء NameError: NameError: wrong constant name answer توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...

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

يعيد التابع arity مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه. يعيد عددًا صحيحًا غير سالب للتوابع التي تقبل عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد ‎-n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد ‎-1 إن كانت تلك التوابع تأخذ عددًا متغيرًا من الوسائط. ...

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

يبحث التابع public_method عن التوابع العامة فقط بشكل مشابه لعمل التابع method. البنية العامة public_method(sym) → method المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد التابع الموافق للاسم sym من الكائن المُعطى، أو يُرمى الاستثناء NameError إذا لم توجد توابع موافقة لهذا الاسم. انظر أيضًا التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. التابع send: يَستدعي التابع ...

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

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

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

غير موثَّق بعد. انظر أيضا التابع method_removed: يستدعى كرد نداء في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف. التابع method_added: يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). مصادر قسم التابع method_undefined‎ في الصنف Module‎ في توثيق روبي الرسمي.

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

يعيد المعامل arity مؤشرًا لعدد الوسائط المقبولة من قبل تابع. البنية العامة arity → integer‎ القيمة المعادة يعاد عدد صحيحً غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد ‎-n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعيد وسيطًا إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد ‎-1 إن كان استدعاء تلك التوابع يأخذ ...

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

يُعدُّ استخدام الصنف Struct طريقةً ملائمةً لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد. يُنشئ الصنف Struct أصنافًا فرعيةً (subclasses) جديدةً تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (reader method) وكاتب (writer method) مشابهين للتابع Module.attr_accessor. Customer = Struct.new(:name, :address) do def greeting "Hello #{name}!" end end dave = Customer.new("Dave", "123 Main") dave.name #=> "Dave" dave.greeting #=> "Hello Dave!"‎ راجع صفحة التابع new ...

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

يعرّف التابع define_method تابع نُسخة (instance method) في المُستقبِل (receiver). في حال تمرير كتلة، فستُستخدم كجسم (body) للتابع. تُقيّم هذه الكتلة باستخدام التابع instance_eval، وهو أمر قد يكون مُشكلًا على البعض، لأن define_method خاصة. (لهذا سنحتال ونستخدم التابع send في المثال التالي.) البنية العامة define_method(symbol, method) → symbol define_method(symbol) { block }→ symbol‎ المعاملات symbol‎ رمز. method‎ تابع نُسخة. يمكن أن يكون من النوع Proc أو Method أو UnboundMethod. القيمة المعادة يعاد رمزٌ. أمثلة مثال على استخدام التابع define_method‎: class A ...

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

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

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

يعيد inspect اسم التابع الأصلي (underlying method). البنية العامة inspect→ string‎ القيمة المعادة يعاد اسم التابع الأصلي المعطى. أمثلة مثال على استخدام التابع inspect‎: "cat".method(:count).inspect #=> "#<Method: String#count>"‎ انظر أيضًا التابع hash: يعيد القيمة hash المقابلة التابع الحر الذي استُدعي معه. التابع name: يعيد اسم التابع الحر الذي استدعي معه. مصادر قسم التابع inspect‎ في الصنف UnboundMethod‎ في توثيق روبي الرسمي.

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

يَستدعي التابع send التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. يمكنك استخدام الاسم __send__ البديل إذا تضارب الاسم مع توابع موجودةٍ في الكائن تحمل نفس الاسم. إن عُرِّف التابع عن طريق سلسلةٍ نصية، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة send(symbol [, args...]) → obj __send__(symbol [, args...]) → obj send(string [, args...]) → obj __send__(string [, args...]) → obj المعاملات symbol الرَّمزُ المعرِّف للتابع المُعطى. ...args المعاملات المراد تمريرها إلى التابع. القيم المعادة يُعاد الكائن الناتج عن تنفيذ ...

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

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

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

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

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع المُمرَّر. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| block*| الكتلة ووسائطها ...

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

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع الذي ستُطبَّق عليه العملية. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| ...

التابع 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.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?‎: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو ...

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

كائنات الصنف Proc هي كتلٌ من الشيفرات البرمجية رُبطت إلى مجموعة من المتغيرات المحليَّة. حالما تُربط، يمكن استدعاء الشيفرة في سياقات مختلفة ويبقى الوصول متاحًا لتلك المتغيرات. def gen_times(factor) return Proc.new {|n| n*factor } end times3 = gen_times(3) times5 = gen_times(5) times3.call(12) #=> 36 times5.call(5) #=> 25 times3.call(times5.call(4)) #=> 60 توابع الصنف العامة (Public ...

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

يعيد التابع protected_instance_methods قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. إذا مُرِّرت قيمة إلى التابع وكانت false، فلن تُتضمّن توابع الأسلاف (ancestors). البنية العامة protected_instance_methods(include_super=true)→ array‎ المعاملات include_super‎ إذا كان هذا الوسيط يساوي false، فلن تُتضمّن توابع الأسلاف (ancestors). القيمة الافتراضية هي: true. القيمة المعادة تعاد مصفوفة تمثِّل قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. انظر أيضا التابع protected: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية protected المحمية. التابع protected_method_defined?‎: يتحقق إن كان التابع المحمي (protected) المعطى ...

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

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

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

يعتبر الصنف SystemCallError الصنف الأب لكل أصناف الأخطاء منخفضة المستوى المرتبطة بنظام التشغيل. الأخطاء المتوفرة على نظام التشغيل الحالي هي أصناف فرعية من الصنف SystemCallErrorـ وهي مُعرّفة في الوحدة Errno. File.open("does/not/exist")‎ عند تنفيذ هذا السطر البرمجي، سيطلق استثناء بالشكل التالي: Errno::ENOENT: No such file or directory - does/not/exist‎ توابع الصنف العامة (Public Class Methods) === يتحقق إن كان الاستثناء الذي استُدعي معه كائنًا عامًا من الصنف SystemCallError، أو إن كان رقما الخطأ الخاصين بهذا الاستثناء والاستثناء الآخر المعطى متساويين. new ...

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

يبحث التابع singleton_method في التوابع المنفردة فقط بطريقة مشابهة للتابع method. البنية العامة singleton_method(sym) → method المعاملات sym الرمز المعرِّف للتابع المنفرد. القيم المعادة يُعاد التابع الموافق للرمز sym المُعطى. أمثلة مثالٌ عن استخدام التابع singleton_method: class Demo def initialize(n) @iv = n end def hello() "Hello, @iv = #{@iv}" end end k = Demo.new(99) def k.hi "Hi, @iv = #{@iv}" end m = k.singleton_method(:hi) m.call #=> "Hi, @iv = 99" m = k.singleton_method(:hello) ...

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

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

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

يعيد التابع public_instance_methods قائمة بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. إن مُرِّرت قيمة إلى التابع وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors). البنية العامة public_instance_methods(include_super=true)→ array‎ المعاملات include_super‎ قيمةمنطقية إن كانت false، فلن يتم تضمين توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تمثِّل قائمةً بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. انظر أيضا التابع public: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى public العامة. التابع public_instance_method: يبحث عن التوابع العامة (public) وحسب على غرار التابع instance_method. التابع public_method_defined?‎: يتحقق ...

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

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

التابع Hash.dig في روبي

يستخرج التابع dig القيمة المتداخلة المحددة بواسطة تسلسل كائنات تمثِّل المفاتيح عن طريق استدعاء dig في كل خطوة، ويعيد القيمة nil إذا كانت أي خطوة متوسطة هي nil. البنية العامة dig(key, ...) → object المعاملات key المفتاح المتشعب المراد استخراج قيمته. ... سلسلة من المفاتيح المتشعبة. القيمة المعادة تعاد القيمة المرتبطة بالمفتاح key أو سلسلة المفاتيح ... المتشعبة. أمثلة مثال على استعمال التابع dig: h = { foo: {bar: {baz: 1}}} h.dig(:foo, :bar, :baz) #=> 1 h.dig(:foo, :zot, :xyz) ...

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

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

التابع Enumerator::Lazy.enum_for في روبي

يشبه التابع enum_for التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة enum_for(method = :each, *args) → lazy_enum enum_for(method = :each, *args){|*args| block} → lazy_enum المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: # ...

التابع Enumerator::Lazy.to_enum في روبي

يشبه التابع to_enum التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة to_enum(method = :each, *args) → lazy_enum to_enum(method = :each, *args) {|*args| block} → lazy_enum المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: ...

التابع 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.instance_method‎ في روبي

يعيد التابع instance_method كائنًا من النوع UnboundMethod يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها. البنية العامة instance_method(symbol)→ unbound_method‎ المعاملات symbol‎ كائن من النوع Symbol. القيمة المعادة يعاد كائنٌ من النوع UnboundMethod يمثل تابع النسخة المعطى في الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع instance_method‎: class Interpreter def do_a() print "there, "; end def do_d() print "Hello "; end def do_e() print "!\n"; end def do_v() print ...

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

يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت. إليك هذا المثال: semaphore = Mutex.new a = Thread.new { semaphore.synchronize { # access shared resource } } b = Thread.new { semaphore.synchronize { # access shared resource } } توابع الصنف العامة (Public Class Methods) new ينشئ كائنًا جديدًا من النوع Mutex. توابع النسخة العامة (Public Instance Methods) lock يحاول مسك القفل (grab ...

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

يَحذِف التابع remove_instance_variable متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. البنية العامة remove_instance_variable(symbol) → obj المعاملات symbol الرَّمز المعرِّف لمتغير النسخة المراد حذفه. القيم المعادة تعاد قيمة متغير النسخة symbol بعد حذفه من الكائن المعطى. أمثلة مثالٌ عن استخدام التابع remove_instance_variable: class Dummy attr_reader :var def initialize @var = 99 end def remove remove_instance_variable(:@var) end end d = Dummy.new d.var #=> ...

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

التابع Hash.rassoc في روبي

يبحث التابع rassoc خلال الكائن Hash الذي استدعي معه عن طريق مقارنة القيمة التي مُمرِّرت إليه مع قيم ذلك الكائن باستخدام المعامل == ثم يعيد أول زوج قيمة-مفتاح متطابق. البنية العامة rassoc(obj) → an_array or nil المعاملات obj الكائن الذي سيُبحَث عنه في الكائن Hash المعطى. القيمة المعادة تعاد مصفوفة من عنصرين تحوي الزوج مفتاح/قيمة المطابقة للقيمة obj المبحوث عنها في الكائن Hash المعطى، أو تعاد القيمة nil إن لم يُعثر على شيء. أمثلة مثال على استعمال التابع rassoc: a = ...

التابع 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] إن كان صنفًا). خلا ...

التابع Hash.assoc في روبي

يبحث التابع assoc ضمن الكائن Hash عن طريق موازنة الكائن المُمرَّر إليه بمفاتيحه باستخدام المعامل == ثم يعيد الزوج قيمة-مفتاح (مصفوفة من عنصرين) أو nil إذا لم يعثر على أي تطابق. البنية العامة assoc(obj) → an_array or nil المعاملات obj الكائن الذي يمثِّل المفتاح المراد البحث عنه ضمن الكائن Hash المعطى. القيمة المعادة تعاد مصفوفة من عنصرين تحوي الزوج قيمة-مفتاح إن عُثِر على المفتاح المطابق لقيمة المعامل obj، أو تعاد القيمة nil لم يعثر على أي تطابق. أمثلة مثال على استعمال ...

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

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

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

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

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

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

يَستدعي التابع public_send التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. خلافًا للتابع send، يَستدعي التابع public_send التوابع العامة فقط. إن عُرِّف التابع باستخدام سلسلةٍ نصيةٍ (string)، فستُحوَّل هذه السلسلة إلى رمز. البنية العامة public_send(symbol [, args...]) → obj public_send(string [, args...]) → obj المعاملات symbol الرَّمز المُعرِّف للتابع المراد استدعاءه. string سلسلة نصية تعرِّف التابع المراد استدعاءه.  ستُحوَّل هذه السلسلة إلى رمز إن أعطيت. ...args المعاملات المراد تمريرها إلى التابع الذي يراد استداعاؤه. القيم المعادة يُعاد ...

Ruby/Topics

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

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

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

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

يمثل الصنف InstructionSequence تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي. يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة insns.defفي ...

تثبيت روبي على مختلف المنصات

توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...

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

يعيد التابع name اسم التابع الحر الذي استُدعي معه. البنية العامة name → symbol‎ القيمة المعادة يعاد اسم التابع الحر المعطى. انظر أيضًا التابع inspect: يعيد اسم التابع الأصلي (underlying method). التابع original_name: يعيد الاسم الأصلي للتابع الحر الذي استُدعي معه. مصادر قسم التابع name‎ في الصنف UnboundMethod‎ في توثيق روبي الرسمي.

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

يُطلق الاستثناء KeyError عندما لا يكون المفتاح (key) المُحدد موجودًا، وهو صنف فرعي من IndexError. h = {"foo" => :bar} h.fetch("foo") #=> :bar h.fetch("baz") #=> KeyError: key not found: "baz" توابع الكائن العامة (Public Instance Methods) key يعيد المفتاح الذي تسبب في رمي الخطأ KeyError. receiver يعيد المتلقي (receiver) المقترن بالاستثناء KeyError. مصادر قسم الصنف KeyError في توثيق روبي الرسمي.

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