نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
التابع Regexp.eql? في روبي
يتحقق التابع eql? إن كان التعبير النمطي المعطى مساويًا للتعبير النمطي الذي استُدعي معه؛ عملية التحقق من التساوي تشمل التحقق إن كان نمطاهما (patterns) متطابقان، وكان لهما نفس رمز مجموعة الحروف (character set code)، وكانت لهما نفس القيمة casefold? لحالة الأحرف. البنية العامة eql?(other_rxp)→ true or false
المعاملات other_rxp تعبير نمطي يراد التحقق من تساويه مع تعبير نمطي آخر. القيمة المعادة تعاد القيمة true إن كان التعبير النمطي other_rxp مساويًا للتعبير النمطي المعطى، وإلا فستعاد القيمة false. أمثلة مثال على استخدام ...
الدالة re.compile() في بايثون
تصرّف الدالة التعبير النمطي إلى كائن تعبير نمطي regex يمكن استخدامه للمطابقة بواسطة توابعه الخاصّة match() و search() وغيرها. البنية العامة re.compile(pattern, flag=0)
المعاملات pattern التعبير النمطي المراد تصريفه. flags يمكن تحديد طريقة التعامل مع التعبير النمطي باستخدام قيم الرايات، ويمكن استخدام أكثر من راية وذلك بفصلها بعامل OR الخاص بالأعداد الثنائية (العامل |). يمكن استخدام المتغيرات التالية كقيم للمعامل flags: re.A re.ASCII يؤدي استخدام هذه الراية إلى جعل عملية المطابقة الخاصة بالتسلسلات \w ،\W ،\b ،\B ،\d ،\D ،\s ...
مطابقة الأنماط باستخدام ميزات Bash
مدى المحارف Character Ranges خلافًا لأمر grep والتعابير النمطية (regular expressions) فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن تحديدًا، ضع حول كل منهما علامات اقتباس مزدوجة: hsoub ~> touch "*"
hsoub ~> ls "*"
*
يمكنك استخدام الأقواس المربعة لمطابقة أي محرف أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف ...
الحقل email
عناصر <input> ذات النوع email تسمح للمستخدم بإدخال وتعديل عنوان بريد إلكتروني، أو قائمةً بعناوين البريد الإلكتروني إذا كانت الخاصية multiple مضبوطةً. سيتم التحقق من صحة المدخلات تلقائيًا للتأكد أنَّها ليست فارغة وأنَّها تُمثِّل عنوان (أو عناوين) بريد إلكتروني صالح قبل إرسال النموذج. إذا لم يكن المتصفح يدعم الحقل email فسيستخدم المتصفح الحقل text الافتراضي. <input type="email" name="email">
الخاصية value تحتوي الخاصية value في الحقل email على سلسلة نصية (DOMString) التي سيتم التحقق من صحتها تلقائيًا، وهنالك ثلاث صيغ سليمة ...
التعابير النمطية في Bash
يلقي هذا الباب الضوء على المزايا المُضمَّنة في Bash لمطابقة الأنماط (patterns) والتعرف على فئات المحارف ومداها. إضافة إلى تفصيل للتعابير النمطية (Regular Expressions)، إذ هي أدوات قوية لاختيار أسطر بعينها من ملفات أو من مُخرج ما، وتستخدمها أوامر كثيرة في يونكس مثل vim و perl وقاعدة بيانات PotgreSQL وغيرها، كما يمكن إضافتها في أي لغة أو تطبيق باستخدام مكتبات خارجية، بل قد تجدها في أنظمة غير أنظمة يونكس، إذ يستخدمها برنامج Excel للجداول الذي يأتي في حزمة مكتب ويندوز. ...
الدالة preg_replace_callback() في PHP
(PHP 4 >= 4.0.5, PHP 5, PHP 7) تبحث الدالة preg_replace_callback() عن تعبير نمطي وتستبدله باستخدام دالة مُعرَّفة من المستخدم. الوصف mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit= -1 [, int &$count ]] )
يتطابق سلوك هذه الوظيفة تقريبًا مع الدالة preg_replace()، باستثناء أنه يجب تحديد الدالة المُعرَّفة من المستخدم callback بدلاً من المعامل replacement. المعاملات pattern النمط المراد البحث عنه. ويمكن أن يكون إما سلسلةً نصيةً أو مصفوفةً من السلاسل النصية. callback الدالة ...
Python/pathlib/PurePath/match
التابع PurePath.match يختبر هذا التابع مطابقة المسار لنمط اختبار المطابقة glob المعطى. البنية العامة تبدأ المطابقة من اليمين، ويمكن أن يكون النمط المعطى نسبيًّا وعندها بُمكن أن يكون المسار نسبيًّا أو مُطلقًا >>> PurePath('a/b.py').match('*.py')
True
>>> PurePath('/a/b/c.py').match('b/*.py')
True
>>> PurePath('/a/b/c.py').match('a/*.py')
False
أما إذا كان النمط مُطلقًا، فلا بد أن يكون المسار مُطلقًا أيضًا وأن يتطابق كامل المسار مع النمط >>> PurePath('/a.py').match('/*.py')
True
>>> PurePath('a/b.py').match('/*.py')
False
كما أن نكهة الصنف الخاصة بويندوز لا تهتم بحالة الحروف، على عكس النكهة الخاصة بباقي الأنظمة. >>> PureWindowsPath('b.py').match('*.PY')
True
>>> PurePosixPath('b.py').match('*.PY')
False
المعاملات الوسيط pattern هو النمط المطلوب مطابقته مع ...
التابع Enumerable.chunk في روبي
يُمرِّر التابع chunk كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يُقطِّعها إلى أجزاء (قطع صغيرة) بحسب القيمة المعادة من الكتلة. العناصر المتتالية التي يكون لها نفس القيمة المعادة من الكتلة هي التي تُجمَّع سويةً. القيم المفتاحية التالية لها معنًى خاص: nil و :_separator: يحدِّدان بأنَّه يجب على العناصر أن تُحذَف. يمكن استعمالهما لتجاهل بعض العناصر. :_alone: يحدِّد بأنه يجب على العنصر أن يُجمَّع لوحده. أية رموز أخرى تبدأ بخط سفلي (underscore) سيؤدي استعمالها إلى رمي خطأ. البنية ...
الصنف Dir في روبي
كائنات الصنف Dir هي مجاري مجلدات (directory streams) تمثِّل الجلدات في نظام الملفات الأساسي لنظام التشغيل. فهي توفر طرائق متعددة لعرض المجلدات ومحتوياتها. انظر أيضًا صفحة الصنف File لمزيد من المعلومات. يحوي المجلد المستخدم في الأمثلة الموجودة في صفحات التوابع ملفين عاديين هما: config.h و main.rb، بالإضافة إلى المجلد الأب (..) ، والمجلد نفسه (.). توابع الصنف العامة (Public Class Methods) المعامل [] يكافئ استدعاء Dir.glob([string,...], 0). chdir يغيِّر مجلد العمل (working directory) الحالي للعملية الحالية إلى مجلَّدٍ محدَّدٍ. children ...
الخاصية Regex.options في Kotlin
تمثل الخاصية Regex.options مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. البنية العامة actual val options: Set<RegexOption>
القيمة المعادة تعاد مجموعةٌ تحوي جميع الخيارات التي استعملت في ضبط التعبير النمطي المعطى أثناء إنشائه. أمثلة استعمال الخاصية options مع تعبير نمطي لمعرفة الخيارات التي استعملت في ضبطه عند إنشائه -باستعمال الدالة Regex()-: fun main(args: Array<String>) {
val reg = Regex("""-?\d+(\.\d+)?""", RegexOption.UNIX_LINES)
print(reg.options) // [UNIX_LINES]
}
انظر أيضًا الخاصية Regex.pattern: تمثل النمط الأولي الذي ...
throw في JavaScript
التعبير البرمجي throw يؤدي إلى رمي استثناء (exception) يُعرِّفه المستخدم، وسيؤدي ذلك إلى توقف تنفيذ الدالة الحالية (أي أنَّ التعابير البرمجية بعد throw لن تُنفَّذ) وسينتقل التنفيذ إلى أوّل catch، وإذا لم تكن موجودةً فسينتهي تنفيذ البرنامج. البنية العامة throw expression;
expression التعبير الذي سيُرمى. الوصف يُستخدَم التعبير throw لرمي استثناء، وعندما ترمي استثناءً فإنَّ قيمة expression تُحدِّد ما هي قيمة الاستثناء. أمثلة: throw 'Error2'; // توليد استثناء له قيمة نصية
throw 42; // توليد استثناء ...
التابع Enumerable.count في روبي
يعيد التابع count عدد العناصر الموجودة في المُعدِّد الذي استدعي معه. إن مُمرَّر معامل إلى التابع، فسيحسب عدد العناصر الموجود في المُعدِّد المساوية إلى قيمة هذا المعامل. أمَّا إن أعطيت كتلة، فسيحسب عدد العناصر المحقِّقة لتلك الكتلة. البنية العامة count → int
count(item) → int
count { |obj| block } → int
المعاملات item الكائن المراد حساب عدد العناصر الموجودة في المُعدِّد المساوية له. القيمة المعادة يعاد عدد صحيح يمثِّل عدد العناصر الموجودة في المُعدِّد المعطى. إن مُمرَّر المعامل item، فسيُحسَب عدد العناصر الموجود ...
الدالة Regex.matchEntire() في Kotlin
تحاول الدالة matchEntire() مطابقة جميع محارف السلسلة الممررة إليها مع التعبير النمطي الذي استدعي معها. البنية العامة actual fun matchEntire(input: CharSequence): MatchResult?
المعاملات input سلسلة المحارف التي يراد تطابق جميع محارفها مع التعبير النمطي المعطى. القيمة المعادة تعاد نسخةٌ من الصنف MatchResult تحتوي على جميع محارف المعامل input إن تطابقت جميع تلك المحارف مع التعبير النمطي المعطى، أو تعاد القيمة null خلاف ذلك. أمثلة استعمال الدالة matchEntire() لمعرفة سلسلة المحارف المطابقة للتعبير النمطي -?\d+(\.\d+)? بشكل كامل: fun main(args: Array<String>) {
...
الخاصية MatchResult.value في Kotlin
تمثل الخاصية MatchResult.value السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي. البنية العامة abstract val value: String
القيمة المعادة تعاد سلسلة نصية تحوي السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج منها مجموعات النتائج عبر استدعاء الدالة matchEntire(). نستخدم بعدئذٍ الخاصية value لاستخراج السلسلة النصية المُطابقة للتعبير النمطي regex و الموجودة في str: fun main(args: Array<String>) {
val pattern = Regex("[a-zA-Z]+([0-9]+)[a-zA-Z]+([0-9]+)[a-zA-Z]+")
val str = ...
الدالة preg_filter() في PHP
(PHP 5 >= 5.3.0, PHP 7) تبحث الدالة preg_filter() عن تعبير نمطي وتستبدله. الوصف mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
تشبه الدالة preg_filter() الدالة preg_replace() باستثناء أنها تعيد فقط السلاسل النصية (التي يمكن تحويلها) إذا كانت مطابقة. لمزيد من التفاصيل حول كيفية عمل هذه الدالة، اقرأ توثيق preg_replace(). القيم المعادة تُعيد هذه الدالة مصفوفة إذا كان المعامل subject عبارة عن مصفوفة، أو سلسلة نصية إذا كان ...
الخاصية MatchResult.range في Kotlin
تمثل الخاصية MatchResult.range مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. البنية العامة abstract val range: IntRange
القيمة المعادة يعاد مجالٌ من النوع IntRange يمثل الفهارس التي تحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج منها مجموعات النتائج عبر استدعاء الدالة matchEntire(). نستخدم بعدئذٍ الخاصية MatchResult.range لاستخراج الفهارس التي تحدد مكان مُطابقة التعبير النمطي regex في ...
الحقل password
عناصر <input> ذات النوع password تسمح للمستخدم بإدخال كلمة مرور بأمان، فهذا الحقل يبدو كحقل الإدخال النصي لكن النص الموجود داخله مشوش ولا يمكن قراءته، ويتم ذلك باستبدال كل محرف برمز آخر مثل رمز النجمة * أو النقطة • وسيختلف المحرف المستخدم بين المتصفحات وأنظمة التشغيل. تفاصيل طريقة الإدخال تختلف من متصفح إلى متصفح، ففي الأجهزة المحمولة سيُعرَض عادةً الحرف المكتوب لبرهة من الزمن قبل تشويشه، مما يسمح للمستخدم أن يتأكد أنَّه ضغط على الزر الصحيح، وهذا مفيدٌ إذا وضعنا ...
الدالة Regex.matches() في Kotlin
تتحقق الدالة matches() من مطابقة جميع محارف السلسلة الممررة إليها مع التعبير النمطي الذي استدعي معها. البنية العامة infix actual fun matches(input: CharSequence): Boolean
وجود الكلمة المفتاحية infix يدل على إمكانية استدعاء الدالة بنمط التدوين الداخلي (Infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات input سلسلة من المحارف التي يراد أن يُتحقَق من مطابقتها كلِّيًا لتعبير نمطي معين. القيمة المعادة تعاد القيمة true إن تطابقت جميع محارف السلسلة input مع التعبير النمطي المعطى. أمثلة استعمال الدالة matches() للتحقق من مطابقة ...
تتبع الأحداث (Trace Events) في Node.js
مؤشر الاستقرار: 1 - تجريبي يوفر تتبع الأحداث آلية لتركيز معلومات التتبع التي تولدت بواسطة V8، ونواه Node.js، وبرمجية مساحة المستخدم (userspace code). يمكن تفعيل التتبع بواسطة راية سطر الأوامر --trace-event-categories أو باستخدام وحدة trace_events. وتقبل راية --trace-event-categories قائمة بأسماء الفئات المفصولة بفاصلات. والفئات المتاحة هي: • node - عنصر نائب (placeholder) فارغ. • node.async_hooks - يتيح التقاط بيانات التتبع async_hooks المُفصَّلة. أحداث async_hooks لها asyncId فريد وخاصيتا triggerId و triggerAsyncId الخاصة. • node.bootstrap ...
الحقل url
عناصر <input> ذات النوع url تستخدم للسماح للمستخدم بإدخال وتعديل رابط URL، وسيتحقق المتصفح تلقائيًا من المدخلات للحرص على أنها فارغة أو رابط URL بصيغة سليمة. <input type="url" name="url">
إذا لم يكن المتصفح يدعم الحقل url فسيستخدم المتصفح الحقل text الافتراضي. الخاصية value تحتوي الخاصية value في الحقل url على سلسلة نصية (DOMString) التي تمثل المحتوى الحالي النصي الموجود في حقل الإدخال والذي جرى التحقق من صيغته على أنه رابط URL صحيح. هنالك ثلاث صيغ صحيحة لقيمة هذا الحقل: سلسلة نصية فارغة "" تشير إلى أنَّ المستخدم لم يدخل ...
التابع regex.search() في بايثون
يفحص هذا التابع السلسلة النصية المعطاة بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل. البنية العامة regex.search(string[, pos[, endpos]])
المعاملات string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. pos يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد ...
الخاصية MatchResult.groups في Kotlin
تمثل الخاصية MatchResult.groups مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. حجم تلك المجموعة يساوي groupCount + 1، إذ يكون groupCount عددَ المجموعات (groups) المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسةٌ بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. البنية العامة abstract val groups: MatchGroupCollection
القيمة المعادة يعاد كائن من النوع MatchGroupCollection يمثل مجموعة (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex ...
الخاصية MatchResult.groupValues في Kotlin
تمثل الخاصية MatchResult.groupValues قائمة بقيم المجموعة المفهرسة المتطابقة. حجم تلك القائمة يساوي groupCount + 1، إذ يكون groupCount عدد المجموعات المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسة بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فستساوي قيمةُ العنصر المقابل في المجموعة groupValues حينئذٍ سلسلةً نصيةً فارغةً. البنية العامة abstract val groupValues: List<String>
القيمة المعادة تعاد قائمة تضم جميع قيم ...
التابع regex.fullmatch() في بايثون
يتحقّق هذا التابع من تطابق التعبير النمطي المصرّف مع السلسلة النصية المعطاة كاملة، ويعيد كائن التطابق المقابل. البنية العامة regex.fullmatch(string[, pos[, endpos]])
المعاملات string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. pos يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ...
الطلبات HTTP في Laravel
الوصول إلى الطلب عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات: <?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* خزّن مستخدمًا جديدًا
*
* @param Request $request
* @return Response
*/
public function store(Request ...
مدخل إلى ملفات التصريحات في TypeScript
مقدمة هذا الدليل مصمَّم لإرشادك إلى كيفيّة كتابة ملفّات تصريحاتٍ (Declaration Files) عاليّة الجودة في TypeScript. يفترض هذا الدليل أنّ لك معرفةً بأساسيّات لغة TypeScript. اقرأ توثيق لغة TypeScript لتفهم مبادئ اللغة الأساسيّة، خاصّة الأنواع ومجالات الأسماء. الأقسام ينقسم هذا الدليل إلى الأقسام التالية: هياكل المكتبات يُساعد دليل هياكل المكتبات على فهم أشكال المكتبات الشائعة وكيفيّة كتابة ملفّ تصريحٍ سليمٍ لكلّ شكل. إذا كنت تُحرّر ملفّ تصريحات موجودٍ أصلًا (كُتِب من طرف مبرمج آخر مثلًا)، فالغالب أنّك لا تحتاج إلى ...
التابع regex.match() في بايثون
يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل. البنية العامة regex.match(string[, pos[, endpos]])
المعاملات string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. pos يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر ...
خيارات المترجم في TypeScript
يوضح الجدول التالي جميع الخيارات التي يمكن استعمالها مع مترجم TypeScript للتحكم بسير عمله والتعديل على سلوكه أثناء ترجمة الشيفرات. الخيار النوع القيمة الافتراضية الوصف --allowJs boolean false السماح بترجمة ملفّات JavaScript. --allowSyntheticDefaultImports boolean module === "system" أو أنّ الخيار --esModuleInterop مضبوط وقيمة module ليست es2015 أو esnext السماح للاستيرادات الافتراضية من الوحدات التي لا تحتوي على تصديرات افتراضيّة. هذا لا يؤثر على الشيفرة المولَّدة، ويؤثر فقط على آلية التحقق من الأنواع. --allowUnreachableCode boolean false لا تُخبِر عن الأخطاء ...
صياغة التعبيرات النمطية في PHP
فيما يلي وصف لصياغة ودلالات التعبيرات النمطية التي يدعمها PCRE. وتوصف أيضًا التعبيرات النمطية في توثيق Perl وفي عدد من الكتب الأخرى، وبعضها يحتوي على أمثلة كثيرة. ويغطيها كتاب "Mastering Regular Expressions"، لجيفري فريدل Jeffrey Friedl الذي نشرته دار نشر O'Reilly (ISBN 1-56592-257-3)، بتفصيل كبير. الوصف هنا غرضه التوثيق المرجعي. التعبير النمطي هو نمط يطابق سلسلة موضوع البحث من اليسار إلى اليمين. وتصطف معظم الأحرف لأنفسها بنمطٍ ما، وتطابق الأحرف المقابلة في موضوع البحث. كمثال صغير، يتطابق النمط The quick ...
الدالة split() في Kotlin
تقتطع الدالة split() المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في قائمة. البنية العامة fun CharSequence.split(
regex: Pattern,
limit: Int = 0
): List<String>
inline fun CharSequence.split(
regex: Regex,
limit: Int = 0
): List<String>
fun CharSequence.split(
vararg delimiters: String,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
fun CharSequence.split(
...
التوجيه (Routing) في Laravel
التوجيه الأساسي تقبل أغلب مسارات Laravel الأساسيّة مُتغّيرين: رابط URI و نطاق مغلق Closure مما يُوفّر طريقة بسيطة ومعبّرة جدّا لتعريف المسارات (routes): Route::get('foo', function () {
return 'Hello World';
});
ملفات المسار الإفتراضيّة كل مسارات Laravel مُعرّفة في ملفات مساراتك الموجودة في المجلّد routes. يُحمّل إطار العمل كل هذه الملفّات تلقائيًا. يعرّف الملف routes/web.php كل المسارات المُخصّصة لواجهة الويب. مجموعة البرمجيّات الوسيطة web معيّنة على كل المسارات وتوفّر خاصيّات مثل حالة الجلسة (session state) والحماية CSRF. المسارات ...
التابع regex.split() في بايثون
يقسم التابع السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المصرّف. هذا التابع مطابق تمامًا للدالة re.split(). البنية العامة regex.split(string, maxsplit=0)
المعاملات string السلسلة النصية التي سيبحث فيها التابع عن حالات التطابق. maxsplit العدد الأقصى من التقسيمات التي سيجريها التابع على السلسلة النصية. في حال كان العدد الأقصى من التقسيمات أقل من عدد حالات المطابقة فإنّ التابع يعيد ما يبقى من السلسلة النصية ليكون العنصر الأخير في القائمة المعادة. يأخذ هذا المعامل القيمة الافتراضية 0. القيمة المعادة يقسم ...
الكائن match في بايثون
ينشأ الكائن match كنتيجة لتطبيق التابعين regex.match() و regex.search() على التعبير النمطي المصرّف. تمتلك كائنات match القيمة المنطقية True دائمًا، ولما كان التابعان match() و search() يعيدان القيمة None عندما لا يكون هناك حالات تطابق، يمكن التحقق من وجود التطابق باستخدام عبارة if بسيطة: match = re.search(pattern, string)
if match:
process(match)
تدعم كائنات match التوابع والخصائص التالية: خصائص الكائن match match.pos قيمة المعامل pos الممرّر إلى التابعين regex.search() و regex.match(). تمثّل هذه الخاصية الموقع الذي تبدأ فيه عملية البحث ...
الكائن RegExp في JavaScript
الكائن RegExp هو دالةٌ بانيةٌ تُنشِئ تعابير نمطيةً (regular expressions) لمُطابَقة النص مع نمط. البنية العامة يمكن أن تأخذ التعابير النمطية الشكل الآتي (الشكل المختصر، ثم الدالة البانية، ثم الدالة RegExp): /pattern/flags
new RegExp(pattern[, flags])
RegExp(pattern[, flags])
pattern التعبير النمطي. flags إذا حُدِّدَت قيمة هذا الوسيط، فستحتوي على تجميعة من الرايات الآتية. g المطابقة في كامل السلسلة النصية، أي العثور على جميع المطابقات بدل التوقف عند أوّل مطابقة. i تجاهل حالة الأحرف. m تعدد الأسطر، أي معاملة محرف البداية والنهاية (أي ^ ...
المخلوط Enumerable في روبي
يوفر المخلوط Enumerable مجموعة من الأصناف مع توابع بحث ونقل (traversal) عديدة قادرة على ترتيب عناصر مجموعة مع بعضها بعضًا. يجب أن يوفر الصنف التابع each الذي يعيد العضو التالي من المجموعة. إن استعمل التابع max، أو mix، أو sort، فيجب أن يُوازَن بين الكائنات في المجموعة باستعمال المعامل <=> الذي تعتمد عليه تلك التوابع في ترتيب عناصر المجموعة الواحدة مع بعضها بعضًا. توابع النسخة العامة all? يتحقق إن كان كل عنصر من عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة ...
سلاسل القوالب في بايثون
تقدّم القوالب طريقة أبسط لإجراء عمليات الاستبدال في السلاسل النصية الموصوفة في PEP 292. حيث يمكن إجراء عمليات الاستبدال باستخدام الرمز $ بدلًا من الرمز %، وباتباع القواعد التالية: يعتبر التسلسل $$ تسلسل تهريب، ويجري استبداله بعلامة $ واحدة. تسمّي الصيغة $identifier معرّفًا يحدّد موضعًا للاستبدال يطابق مفتاح ربط يحمل الاسم "identifier". المعرّفات الصالحة هي تلك التي تتضمّن حروفًا وأرقامًا بترميز ASCII وتكون غير حساسة لحالة الأحرف، وتبدأ بشرطة سفلية أو أحد حروف الترميز ASCII. وينتهي اسم المحرّف عند أوّل ...
التابع Enumerable.slice_when في روبي
يقطِّع التابع slice_when عناصر الكائن القابل للتعداد إلى أجزاء تحدَّد بدايتها عبر كتلةٍ معطاةٍ ثم يعيد مُعدِّد لكل جزء من الأجزاء الناتجة. البنية العامة slice_when {|elt_before, elt_after| bool } → an_enumerator
يُقطِّع هذا التابع كل جزء باستعمال مفهوم العناصر المتجاورة - elt_before و elt_after - في المُعدِّد المستقبل. أي تُقطِّع هذه الدالة الأجزاء الواقعة بين elt_before و elt_after حيث تعيد الكتلة القيمة true. تُستدعَى الكتلة بعدد يساوي إلى طول المُعدِّد المستقبل مطروحًا من الواحد. يُنتِج المُعدِّد المعاد العناصر المُجزَّأة كمصفوفة. لذلك، ...
Object.defineProperty()
الدالة Object.defineProperty() تُعرِّف خاصيةً جديدةً على كائنٍ مباشرةً، أو تُعدِّل خاصية موجودةً مسبقًا في كائنٍ ثم تُعيد هذا الكائن. البنية العامة Object.defineProperty(obj, prop, descriptor)
obj الكائن الذي نريد تعريف الخاصية فيه. prop اسم الخاصية التي نريد تعريفها أو تعديلها. descriptor واصف الخاصية (property descriptor) التي ستُضاف أو تُعدَّل. القيمة المعادة الكائن الذي مُرِّرَ إلى الدالة. الوصف هذه الدالة تسمح بإضافة أو تعديل خاصية من خاصيات كائنٍ ما بدقة، إذ إنَّ إضافة الخاصيات عبر معامل الإسناد سيُنشِئ خاصياتٍ تظهر عند إحصاء ...
استخدام البُنية case
حالات مُبسطة قد يكون من السهل اللجوء إلى استخدام عبارات if لبداهة أسلوبها، لكن تلك السهولة تنقلب إلى حيرة حين تواجه بضعة اختيارات مختلفة لإجراءات محتملة يجب اتخاذها، ولمثل تلك الحالات نستخدم عبارة case، وبنيتها اللغوية هي كما يلي: case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac
وتطابق كل حالة في التعبير السابق نمطًا (pattern)، وتُنفَّذ الأوامر التي في قائمة COMMAND-LIST لأول تطابق، ويُستخدم محرف الأنبوب | لفصل الأنماط المتعددة، وينهي معامِل ( قائمة الأنماط، ويُطلق اسم البند ...
الحقل text
عناصر <input> ذات النوع text تسمح بإنشاء حقول إدخال نصية بسيطة ذات سطرٍ وحيد. <input type="text" name="name">
الخاصية value تحتوي الخاصية value في الحقل text على سلسلة نصية (DOMString) التي تمثل المحتوى الحالي النصي الموجود في حقل الإدخال. يمكن الحصول على قيمة هذه الخاصية باستخدام الخاصية HTMLInputElement.value عبر JavaScript: let theText = myTextInput.value;
لا توجد شروط للتحقق من صحة هذا الحقل (راجع قسم «التحقق من الحقل» لمزيدٍ من التفاصيل)، يمكن أن تكون القيمة سلسلةً نصيةً أو قيمةً فارغةً. استخدام حقل الإدخال النصي عناصر ...
الحقل search
عناصر <input> ذات النوع search هي حقول نصية مُصمَّمة لكي يُدخِل المستخدم عبارات البحث فيها. <input type="search" name="search">
الخاصية value تحتوي الخاصية value في الحقل search على سلسلة نصية (DOMString) التي تُمثِّل القيمة الموجودة في حقل البحث. يمكن الحصول على قيمة هذه الخاصية باستخدام الخاصية HTMLInputElement.value عبر JavaScript: mySearch.value;
لا توجد شروط للتحقق من صحة هذا الحقل (راجع قسم «التحقق من الحقل» لمزيدٍ من التفاصيل)، يمكن أن تكون القيمة سلسلةً نصيةً أو قيمةً فارغةً. استخدام حقل البحث عناصر <input> ذات النوع ...
الحقل tel
عناصر <input> ذات النوع tel تستخدم للسماح للمستخدمين بإدخال وتعديل رقم هاتف. وعلى النقيض من الحقل email والحقل url، فلن يتحقق المتصفح من مطابقة قيمة هذا الحقل لصيغةٍ معينةٍ قبل السماح بإرسال النموذج، وذلك لأنَّ صيغ أرقام الهواتف تختلف كثيرًا حول العالم. <input type="tel" name="tel">
على الرغم من أنَّ وظيفة الحقل tel مماثلة تقريبًا لوظيفة الحقل text، إلا أنَّه يساعد في تسهيل عملية إدخال أرقام الهواتف في الهواتف المحمولة، إذ تُخصَّص لوحة المفاتيح لإدخال أرقام الهواتف؛ أضف إلى أنَّ استخدام نوع ...
العنصر
يُستخدَم العنصر <input> لإنشاء عناصر تفاعلية للنماذج في صفحات الويب التي تقبل معطيات من المستخدم، ثم تُرسَل إلى الخادوم. لتأخذ فكرة عن طريقة عمل (وشكل) مختلف أنواع العنصر <input>، فجرّب تعديل قيمة الخاصية type في المثال الحي الآتي، وسترى الناتج يُحدَّث أثناء كتابتك. وستُمثِّل القيمة الابتدائية (text) حقل إدخال نصيّ عادي، لكنك يمكنك تجربة قيم أخرى مثل number و color و checkbox و radio و date و file و month و password و range و time. مثال عن حقل نصي ...
التوسعات في Bash
بعد تقسيم الأمر في Bash إلى وحدات (Tokens) -انظر وحدات البناء الأساسية في Bash، البنية اللغوية للصدفة- فإن تلك الوحدات توسَّع (expanded) أو تُستبيَن (resolved)، وسنفصّل الآن تلك التوسعات وفقًا لترتيب كل منها، ثم بعد إتمام جميع التوسعات تُنفّذ عملية حذف الاقتباسات. توسُّع القوس المعقوف {} توسع القوس المعقوف هو آلية يمكن من خلالها إنشاء نصوص عشوائية (arbitrary strings)، إذ تأخذ الأنماط (patterns) التي سيُنفَّذ عليها توسع القوس المعقوف باستهلال اختياري (optional preamble) متبوع بسلسلة من النصوص تفصل بين كل ...
الحقل range
عناصر <input> ذات النوع range تسمح للمستخدم بتحديد قيمة عددية ليست أقل من قيمة معيّنة وليست أكبر من قيمة أخرى، ولا تعتبر القيمة الدقيقة لمدخلات المستخدم مهمةً. يُمثَّل هذا العنصر عادةً باستخدام مزلاج عوضًا عن حقل نصي (الذي يُمثِّل الحقل number)، ولأنَّ هذا الحقل لا يوفِّر تحكمًا دقيقًا فستكون القيمة الدقيقة التي أدخلها المستخدم غير مهمة. إذا لم يكن المتصفح يدعم الحقل range فسيستخدم المتصفح الحقل text الافتراضي. <input type="range" name="range">
الخاصية value تحتوي الخاصية value في الحقل range على سلسلة نصية (DOMString) التي ...
الصنف Object في روبي
يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. تندمج الوحدة Kernel ضمن الصنف Object ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object معرَّفةٌ عن طريق الوحدة Kernel، رأينا أن نوثّقهم هنا لمزيد من الوضوح. عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا ...
الحقل month
عناصر <input> ذات النوع month تُنشِئ حقل إدخال يسمح بانتقاء السنة والشهر بسهولة. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا (راجع قسم دعم المتصفحات لمزيدٍ من المعلومات)، لكن هذا الحقل سيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="month" name="month">
سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera: لقطة لكيفية عرض الحقل month في متصفحَي Chrome و Opera. أما في متصفح Edge فسيبدو الحقل كما يلي: لقطة لكيفية عرض الحقل month ...
الحقل time
عناصر <input> ذات النوع time تُنشِئ حقل إدخال يسمح بإدخال الوقت بسهولة. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا، فالوضع الحالي لهذا الحقل في متصفحات Chrome و Opera و Edge ومتصفحات الهواتف المحمولة لا بأس به، وسيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="time" name="time">
سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera، إذ يظهر سهم علوي وسفلي إضافةً إلى زر لحذف قيمة الحقل، وسيُدخَل الوقت بصيغة 12 ساعة، أي ...
الصنف Regexp في روبي
تمثل كائنات الصنف Regexp التعابير النمطية التي تُستخدم لمطابقة نمط (pattern) معيّن في سلسلة نصية. تُنشَأ التعابير النمطية باستخدام الصياغتين /.../ و %r{...}، أو باستعمال الباني new. التعابير النمطية هي أنماط تصف محتويات السلسلة النصية. يمكن استخدامها للتحقق من أنّ سلسلة نصية تحتوي على نمط معين، أو لاستخراج الأجزاء المُطابقة منها. عادةً ما يتم تحديد التعبير النمطي بخط مائل (/) كما يوضح المثال التالي: /hay/ =~ 'haystack' #=> 0
/y/.match('haystack') #=> #<MatchData "y">
إذا احتوت سلسلة نصية على النمط، فسيقال ...
خيارات سطر الأوامر في Node.js
يتوافر العديد من خيارات سطر الأوامر التي يمكن استعمالها مع Node.js. تُستعمَل هذه الخيارات في تنقيح أخطاء الشيفرة، والتحكم في كيفيَّة تنفيذ الشيفرة، وغيرها من الأمور المفيدة. يمكن عرض هذا التوثيق في الطرفيَّة عبر استعمال الأمر man node. البنية العامة node [options] [V8 options] [script.js | -e "script" | -] [--] [arguments]
node debug [script.js | -e "script" | <host>:<port>] …
node --v8-options
إنَّ تنفيذ node دون أيَّة وسائط يؤدي إلى بدئها مع الوحدة REPL. لمزيدٍ من المعلومات حول node debug، راجع رجاءً ...
الحقل number
عناصر <input> ذات النوع number تسمح للمستخدم بإدخال قيمة عددية. سيتم التحقق من صحة المدخلات تلقائيًا للتأكد أنَّها أعداد وسيرفض المتصفح أيّة قيم غير رقمية، ويمكن أن يوفر المتصفح أسهمًا بجوار هذا الحقل للسماح للمستخدم بزيادة أو إنقاص القيمة باستخدام الفأرة أو بالضغط عليها بأصبعه. إذا لم يكن المتصفح يدعم الحقل number فسيستخدم المتصفح الحقل text الافتراضي. <input type="number" name="number">
الخاصية value تُمثَّل قيمة الخاصية value بكائن Number. يمكنك ضبط القيمة الافتراضية في هذا الحقل بإسناد رقم للخاصية value كما ...
المزخرفات في TypeScript
مقدمة مع إضافة الأصناف إلى TypeScript ونسخة ES6، فقد ظهرت كذلك حاجةٌ إلى ميزات إضافية لدعم تعديل الأصناف وعناصر الأصناف أو توصيفها (annotating). توفّر المزخرفات (Decorators) طريقة لإضافة توصيفات وبنية برمجة وصفيّة (meta-programming) لتصريحات الأصناف وعناصرها. المزخرفات حاليًّا اقتراح في المرحلة 2 (stage 2 proposal) في JavaScript وهي متوفّرة كميّزة تجريبيّة في TypeScript. ملاحظة: المزخرفات ميّزة تجريبيّة قد تتغيّر في النسخ الجديدة مستقبلًا. لتفعيل الدعم التجريبي للمزخرفات، عليك تفعيل خيار المترجم experimentalDecorators إما على سطر الأوامر أو في ملفّ tsconfig.json ...
الحقل date
عناصر <input> ذات النوع date تُنشِئ حقل إدخال يسمح بانتقاء التاريخ بسهولة، والتاريخ يتضمن السنة والشهر واليوم لكن ليس الوقت time. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا (راجع قسم دعم المتصفحات لمزيدٍ من المعلومات)، لكن هذا الحقل سيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="date" name="date">
سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera: لقطة لكيفية عرض الحقل date في متصفحَي Chrome و Opera. أما في متصفح Edge فسيبدو ...
التعابير النمطية وأمثلة عن استخدام grep
التعابير النمطية Regular Expressions التعبير النمطي (Regular Expression) هو أسلوب يصف مجموعة من النصوص (strings)، وتُبنى تلك التعابير النمطية بشكل تناظري للتعابير الحسابية (arithmetic expressions) باستخدام عدة معامِلات لدمج التعابير الأصغر. وأصغر وحدة بنائية للتعابير النمطية هي تلك التي تطابق محرفًا واحدًا، ذلك أن أغلب المحارف -بما في ذلك كل الحروف والأرقام- ما هي إلا تعابير نمطية تطابق أنفسها، ويمكن اقتباس أي محرف خاص (metacharacter) له معنىً خاص بسبْقِه بشرطة مائلة خلفية \. المحارف الخاصة للتعابير النمطية يمكن إتْباع التعبير ...
الاستخدامات المتقدمة لعبارة if الشرطية في Bash
بُنى if/then/else يوضح المثال التالي البُنية التي يجب استخدامها لاتخاذ إجراء أو سلسلة إجراءات إن تحققت شروط عبارة if، وسلسلة إجراءات أخرى إن لم تتحقق: hsoub scripts> gender="male"
hsoub scripts> if [[ "$gender" == "f*" ]]
More input> then echo "Pleasure to meet you, Madame."
More input> else echo "How come the lady hasn't got a drink yet?"
More input> fi
How come the lady hasn't got a drink yet?
hsoub scripts>
الفرق بين [] و [[]] على عكس ]، فإن ]] تمنع انقسام الكلمات في ...
أساسيات Active Record في ريلز
هذا الدليل هو مدخل إلى المكتبة Active Record. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM (اختصار للعبارة Object Relational Mapping أي "ربط الكائنات العِلاقيَّة") وما هو Active Record وكيفية استعمالهما في ريلز. كيف ينسجم Active Record مع النموذج MVC (اختصار للعبارة Model-View-Controller). كيفية استعمال نماذج Active Record (أي Active Record models) لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة (relational database). اصطلاحات تسمية مخطَّط Active Record. مفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات. ما هو Active Record؟ ...
الحقل datetime-local
عناصر <input> ذات النوع date تُنشِئ حقل إدخال يسمح بانتقاء التاريخ والوقت بسهولة، والتاريخ يتضمن السنة والشهر واليوم والساعات والدقائق. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا، فالوضع الحالي لهذا الحقل في متصفحات Chrome و Opera و Edge ومتصفحات الهواتف المحمولة لا بأس به، وسيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="datetime-local" name="datetime">
سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera، الضغط على السهم سيؤدي إلى إظهار نافذة منتقي التاريخ، ...
تقرير الوحدات في TypeScript
قراءة هذه الصفحة تتطلّب فهمًا عامًّا للوحدات. انظر توثيق الوحدات للاستزادة. تقريرُ (أو حلُّ) الوحداتِ (Module resolution)، هي العمليّة التي يعتمد عليها المترجم (compiler) لاكتشاف ما يُشير إليه استيرادٌ (import) معيّن. لنفترض مثلًا أنّ لدينا جملة استيرادٍ كما يلي: import { a } from "moduleA"؛ للتحقّق من أيّ اعتمادٍ على المتغيّر a، فإنّ المترجم بحاجةٍ إلى فهم ما يُمثّله المتغيّر بالضبط، وسيتطلّب ذلك التحقق من تعريفه في الوحدة moduleA. سيسأل المُترجم كبدايةٍ عن شكل الوحدة moduleA، وقد تكون الوحدة مُعرّفةً ...
نظرة عامة على Action Cable في ريلز
ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز. بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به. كيفية إعداد Action Cable. كيفية إعداد القنوات. النشر وإعداد المعمارية لتشغيل Action Cable. المقدمة يدمج Action Cable مقابس الويب WebSockets مع باقي تطبيق ريلز بسلاسة. يسمح ذلك بكتابة الميزات في الوقت الحقيقي في روبي بنفس الأسلوب والشكل كبقية تطبيقات ريلز، مع الاستمرار في الأداء وقابلية التطوير. ...
التصريح عن المتغيّرات في TypeScript
التصريح عن المتغيّرات (Variable Declarations) الكلمتان المفتاحيتان let وconst نوعان جديدان من طرق التصريح عن المتغيرات في لغة JavaScript. الكلمة المفتاحية let مُشابهة للكلمة المفتاحية var من عدّة نواحي، لكنّ let تسمح للمُطورين بتجنب بعض المشاكل التي تحدث عادةً في لغة JavaScript. أمّا const فهي طريقة لمنع إعادة تعيين القيم للمتغيرات. ولأنّ TypeScript مجموعة عليا من JavaScript، فاللغة تدعم let وconst. وسنشرح طرق التصريح عن المتغيرات هذه ولمَ يُفضّل استعمالها عوضًا عن var. إن كانت لديك خبرة قليلة في لغة ...
التعامل مع النصوص والتعابير النمطية في Kotlin
تستخدم الدوال التالية في التعامل مع النصوص والتعابير النمطية. الأنواع Appendable CharCategory CharDirectionality Charsets MatchGroup يمثل الصنف MatchGroup النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. MatchGroupCollection تمثل الواجهة MatchGroupCollection مجموعةً (collection) من الفئات المرصودة (captured groups) عند إجراء مطابقة واحدة لتعبير نمطي ما. MatchNamedGroupCollection توسع هذه الواجهة الصنف MatchGroupCollection عبر تعريف طريقةٍ لجلب المجموعات المتطابقة (matched groups) عن طريق أسمائها عندما يدعم regex ذلك. MatchResult تمثل الواجهة MatchResult نتائج مطابقة واحدة لتعبير نمطي. Regex يمثل الصنف Regex تعبيرًا نمطيا قابلًا للتعديل (immutable regular expression). إن أردت الاطلاع على المزيد من المعلومات المتعلقة بصياغة النمط (pattern)، ...
Ruby/Topics
تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...
المتغيرات في Bash
أنواع المتغيرات تُكتب متغيرات الصدفة بحروف إنجليزية كبيرة، وتحتفظ Bash بقائمة من نوعين من المتغيرات: المتغيرات العامة Global Variables ستجد المتغيرات العامة أو متغيرات البيئة (environment variables) في جميع الصدفات، ويمكن استخدام أوامر env أو printenv لعرض متغيرات البيئة، وتأتي تلك البرامج في حزمة sh-utils. إليك مثالًا لخرج أمر printenv: wiki ~> printenv
CC=gcc
CDPATH=.:~:/usr/local:/usr:/
CFLAGS=-O2 -fomit-frame-pointer
COLORTERM=gnome-terminal
CXXFLAGS=-O2 -fomit-frame-pointer
DISPLAY=:0
DOMAIN=hq.garrels.be
e=
TOR=vi
FCEDIT=vi
FIGNORE=.o:~
G_BROKEN_FILENAMES=1
GDK_USE_XFT=1
GDMSESSION=Default
GNOME_DESKTOP_SESSION_ID=Default
GTK_RC_FILES=/etc/gtk/gtkrc:/nethome/wiki/.gtkrc-1.2-gnome2
GWMCOLOR=darkgreen
GWMTERM=xterm
HISTFILESIZE=5000
history_control=ignoredups
HISTSIZE=2000
HOME=/nethome/wiki
HOSTNAME=hsoub.hq.garrels.be
INPUTRC=/etc/inputrc
IRCNAME=wiki
JAVA_HOME=/usr/java/j2sdk1.4.0
LANG=en_US
LDFLAGS=-s
LD_LIBRARY_PATH=/usr/lib/mozilla:/usr/lib/mozilla/plugins
LESSCHARSET=latin1
LESS=-edfMQ
LESSOPEN=|/usr/bin/lesspipe.sh %s
LEX=flex
LOCAL_MACHINE=hsoub
LOGNAME=wiki
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MACHINES=hsoub
MAILCHECK=60
MAIL=/var/mail/wiki
MANPATH=/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man
MEAN_MACHINES=hsoub
MOZ_DIST_BIN=/usr/lib/mozilla
MOZILLA_FIVE_HOME=/usr/lib/mozilla
MOZ_PROGRAM=/usr/lib/mozilla/mozilla-bin
MTOOLS_FAT_COMPATIBILITY=1
MYMALLOC=0
NNTPPORT=119
NNTPSERVER=news
NPX_PLUGIN_PATH=/plugin/ns4plugin/:/usr/lib/netscape/plugins
OLDPWD=/nethome/wiki
OS=Linux
PAGER=less
PATH=/nethome/wiki/bin.Linux:/nethome/wiki/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:.
PS1=\[\033[1;44m\]wiki is in \w\[\033[0m\]
PS2=More input>
PWD=/nethome/wiki
SESSION_MANAGER=local/hsoub.hq.garrels.be:/tmp/.ICE-unix/22106
SHELL=/bin/bash
SHELL_LOGIN=--login
SHLVL=2
SSH_AGENT_PID=22161
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SSH_AUTH_SOCK=/tmp/ssh-XXmhQ4fC/agent.22106
START_WM=twm
TERM=xterm
TYPE=type
USERNAME=wiki
USER=wiki
_=/usr/bin/printenv
VISUAL=vi
WINDOWID=20971661
XAPPLRESDIR=/nethome/wiki/app-defaults
XAUTHORITY=/nethome/wiki/.Xauthority
XENVIRONMENT=/nethome/wiki/.Xdefaults
XFILESEARCHPATH=/usr/X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/lib/X11/%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib/X11/%T/%N%S
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
XMODIFIERS=@im=none
XTERMID=
XWINHOME=/usr/X11R6
X=X11R6
YACC=bison -y
المتغيرات المحلية Local Variables لن تجد المتغيرات المحلية إلا في الصدفة الحالية، ويمكن استخدام أمر set -بدون خيارات- لعرض ...
الوحدات في TypeScript
ملاحظة حول المصطلحات تغيّرت طريقة استخدام المصطلحات في النسخة TypeScript 1.5، إذ كانت مجالات الأسماء (namespaces) تُسمّى قديمًا بمصطلح "الوحدات الداخليّة (internal modules)"، وما كان يُسمّى بالوحدات الخارجيّة (External modules) أصبح يُسمّى ببساطة بمصطلح "الوحدات (modules)" وهو ما سنغطّيه في هذه الصفحة. ويجب استخدام الكلمة المفتاحية namespace في الأماكن التي كانت تُستخدَم فيها الكلمة المفتاحية module للتصريح عن وحدة داخليّة في النسخ التي سبقت TypeScript 1.5، أي أنّ عليك استخدام namespace X { عوضًا عن module X { (انظر صفحة ...
نظرة عامة على وحدة العرض في ريلز
بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...
اختبار تطبيقات ريلز
يشمل هذا الدليل الآليّات المدمجة في ريلز لإجراء الاختبارت على التطبيقات. بعد قراءة هذا الدليل، ستتعلم: الاصطلاح المتعلّق باختبارات ريلز. كيفيّة كتابة كلٍّ من اختبارات الوحدة، الاختبارات الوظيفيّة، والاختبارات التكامليّة لتطبيقات ريلز. وغيرها من الطرق والإضافات الخاصّة بالاختبارات. ما الهدف من كتابة اختبارات لتطبيقات ريلز؟ يسهّل ريلز كتابة الاختبارات بشكل كبير، إذ أنّه يبدأ بهيكلة شيفرة الاختبار في الوقت الذي تُنشِئ فيه النّماذج ووحدات التحكّم. يمكّنك إجراء اختبارات ريلز من التأكّد من أداء الشيفرة وظيفتَها المطلوبة حتّى بعد إعادة تصميم ...
البدء مع ريلز
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات. التخطيط العام لتطبيق ريلز. المبادئ الأساسية للنمط MVC (النموذج [Model]، والواجهة [View]، ووحدة التحكم [Controller]) والتصميم RESTful. كيف تولد سريعًا أجزاء البداية لتطبيق ريلز. افتراضات الدليل صُمِّم هذا الدليل للمبتدئين الراغبين ببدء استعمال إطار العمل ريلز من الصفر. ولا يفترض أن لك سابق خبرة بريلز. إنَّ ريلز هو إطار عمل لتطبيقات الويب يعمل على لغة البرمجة روبي. ...
الشروع في العمل مع المحركات في ريلز
ستتعرف في هذا الدليل على المحركات (engines) وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة واضحة وسهلة الاستخدام للغاية. بعد قراءة هذا الدليل، ستتعلم: مما يتكون المحرك. كيف وُلِّد المحرك. كيفية بناء ميزات للمحرك. كيفية ربط المحرك في التطبيق. كيفية استبدال وظيفة المحرك في التطبيق. تجنب تحميل أطر ريلز مع خطافات التحميل (Load Hooks) وخطافات الضبط (Configuration Hooks). ما هي المحركات؟ تُعدُّ المحركات تطبيقات مصغرة توفر وظائف لتطبيقاتها المضيفة. تطبيق ريلز هو بالفعل محرك "supercharged"، مع الصنف ...
الأنواع المتقدمة في TypeScript
أنواع التقاطع (Intersection Types) يجمعُ نوعُ تقاطعٍ عدّة أنواع في نوع واحد. يسمح هذا بجمع الأنواع الموجودة في نوع واحد يملك جميع الميّزات التي تحتاج إليها. مثلًا، النوعُ Person & Serializable & Loggable هو من النّوع Person والنّوع Serializable والنّوع Serializable، كلّها مجموعة في نفس النّوع. هذا يعني أنّ كائنًا ما من هذا النوع سيحتوي على جميع عناصر الأنواع الثلاثة. تُستعمل أنواع التّقاطع عادةً في المخاليط (mixins) والمبادئ الأخرى التي قد تكون غريبة على البرمجة كائنيّة التوجه العاديّة (وهي متواجدة ...
عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).