الدالة ()declare في Sass

من موسوعة حسوب

تُصرّح بتوقيع (signature) خاص بلغة Sass لأجل دوال روبي. يتضمن التوقيع أسماءَ الوسائط، وهل ستأخذ الدالة عددًا متغيرًا من الوسائط، وما إن كانت الدالة ستقبل مجموعة عشوائيةً من الوسائط المُسمّاة (keyword arguments).

التصريح بالتوقيع ليس ضروريًا ولكن لن تدعم الدالةُ بدونه الوسائط المُسمّاة.

يمكن أن يكون لدالةٍ واحدةٍ أكثر من توقيع واحدٍ طالما أنّ كلَّ توقيع يأخذ عددًا مختلفًا من الوسائط. من الممكن أيضًا التصريح بعدة تواقيع تقبل جميعُها نفس العدد من الوسائط، ولكن لن يُستخدم في تلك الحالة سوى التوقيع الأول إلّا إذا استعمل المُستخدم الوسائط المُسمّاة.

البنية العامة

.declare(method_name, args, options = {})

المعاملات

method_name

اسم الدالة التي سيُصرَّح بتوقيعها.

args

مصفوفة تضم أسماء الوسائط الموجودة في توقيع الدالة.

option

مجموعة من الخيارات القابلة للتخصيص، وقيمته الافتراضية هي {}.

الخيارات (options)

‎:var_args

هذا الخيار هو قيمة منطقية (Boolean) يحدّد ما إذا كانت الدالة ستقبل عددًا متغيرًا من الوسائط (غير المسماة) إضافةً إلى الوسائط المسماة. قيمته الافتراضية هي false.

‎:‎var_kwargs‎

هذا الخيار هو قيمة منطقية يحدّد ما إذا كانت الدالة ستقبل وسائط مُسمّاةٍ أخرى إضافةً إلى تلك الموجودة في ‏‏‎:args. إذا كانت قيمته true، فسيُمرّر لدالة روبي خريطة تربط بين سلاسل نصّية وقيم كوسيطٍ أخيرٍ. أمّا إن كانت قيمته true وقيمةُ الخيار ‎:var_args تساوي false، فستحرص Sass على أن يكون الوسيط الأخير خريطة. قيمته الافتراضية هي false.

أمثلة

declare :rgba, [:hex, :alpha]
declare :rgba, [:red, :green, :blue, :alpha]
declare :accepts_anything, [], :var_args => true, :var_kwargs => true
declare :some_func, [:foo, :bar, :baz], :var_kwargs => true

مصادر