إي روبي
روبي المضمنة (يُختصر إلى ERB أو eRuby ) هي محرك قوالب يُدمج كود روبي في المستندات النصية . تُستخدم عادةً لإنشاء محتوى ديناميكي في مستندات HTML ، وهو دور مشابه لصفحات الخادم النشطة (Active Server Pages ) وصفحات خادم جافا (JavaServer Pages ) ولغة PHP وغيرها من لغات البرمجة النصية من جانب الخادم . يجمع eRuby بين كود روبي والنص العادي لتوفير التحكم في التدفق واستبدال المتغيرات، مما يجعل الكود المدمج أسهل في الصيانة. [ 1 ]
في Ruby on Rails ، يُستخدم eRuby عادةً في طبقة العرض لإنشاء محتوى ويب ديناميكي. وحدة العرض في Ruby on Rails مسؤولة عن عرض الاستجابة أو المخرجات في المتصفح . في أبسط صورها، قد تتكون طبقة العرض من محتوى HTML ثابت ؛ ومع ذلك، تتطلب العديد من تطبيقات Ruby on Rails عرض محتوى ديناميكي مُنشأ بواسطة وحدة التحكم (دالة الإجراء) في طبقة العرض. ويتحقق ذلك من خلال قوالب Ruby المضمنة، التي تسمح بتضمين كود Ruby داخل مستندات العرض.
أثناء عملية العرض، يتم تقييم الكود المُضمّن واستبداله بقيمته الناتجة في وقت التشغيل . مع ذلك، فإن إمكانية تضمين الكود في مستند العرض قد تُخلّ بالفصل الواضح بين المهام في إطار عمل MVC . ونتيجةً لذلك، يقع على عاتق مطوّر التطبيق مسؤولية الحفاظ على فصل واضح للمسؤوليات بين وحدات النموذج والعرض والمتحكم . [ 2 ]
الاستخدام
يُضمّن eRuby كود Ruby داخل زوج من المحددات<% `<>` و` <>`، والتي تُقيّم في مكانها. بالإضافة إلى إنشاء صفحات الويب، يُمكن استخدام eRuby لإنشاء مستندات XML ، وخلاصات RSS ، وأنواع أخرى من ملفات النصوص المنظمة. علاوة على ذلك، يُنشئ eRuby ملفات ثابتة ديناميكيًا بناءً على قوالب . تتوفر هذه الوظائف في مكتبة ERB.%>
توجد أنواع مختلفة من علامات التصنيف المستخدمة في قوالب ERB:
- علامات التعبير
- علامات التنفيذ
- علامات التعليق [ 3 ]
علامات التعبير
يشير المحدد إلى أن الوسم يحيط بتعبير. يبدأ هذا الوسم بمحدد علامة الفتح متبوعًا برمز يساوي، وينتهي بمحدد علامة النهاية . أثناء عرض القالب ، يُستبدل هذا الجزء من الكود بنتيجة الكود. إذا لم تكن النتيجة المُقيّمة سلسلة نصية، فسيتم تحويلها إلى سلسلة نصية قبل عرضها. [ 1 ]<%=%>
require 'erb' x = 500 template = ERB.new ( " قيمة x هي: <%= x %>" ) puts template.result ( binding ) < % # Output: قيمة x هي: 500 % >علامات التنفيذ
تُعرَّف علامات التنفيذ بواسطة، ويُطلق على الكود المُضمَّن في هذه العلامات اسم " سكربت" . يتم تنفيذ الكود الموجود في العلامة المُناسبة، ويتم استبدال نتيجته مكان السكربت. تتطلب هذه العلامات علامة مُطابقة للدلالة على نهاية كتلة وظيفية. يُنشئ قالب ERB التالي عنصر قائمة HTML أربع مرات: [ 4 ]<%%><%end%>
<ul> < % 4.times do % ><li> عنصر القائمة < / li ><% end %> </ ul >فيما يلي الناتج النهائي:
<li> عنصر القائمة < / li > <li> عنصر القائمة < / li > <li> عنصر القائمة < / li > <li> عنصر القائمة < / li >كما هو موضح في المخرجات، تتم طباعة عنصر قائمة النصوص أربع مرات. لا يُنتج البرنامج النصي أي نص من تلقاء نفسه؛ بل يقوم فقط بتشغيل العبارة المرفقة عدة مرات.
التعليقات والوسوم
تُعرَّف التعليقات باستخدام الوسم <a> ولا تُعرض في المخرجات. تبدأ هذه الوسوم بعلامة الفتح متبوعة برمز المربع (#) وتنتهي بعلامة الإغلاق. فيما يلي مثال على وسم تعليق: [ 5 ]<%#%>
<%# كود روبي %>
يستخدم Ruby نفس علامات التعليق التي يستخدمها eRuby، ويتم #تجاهل جميع التعليمات البرمجية التي تليها، وبالتالي لا يتم إنشاء أي شيء.
علامات أخرى
هناك علامات أخرى شائعة في كل من eRuby و Ruby، مثل استبدال السلسلة بـ #{string_name}، وهو أمر مشابه في لغات مثل Perl أو PHP .
يمكن حذف الأسطر الجديدة في eRuby عن طريق إضافة واصلة في بداية محدد علامة النهاية.
فيما يلي مثال على قيمة @nameالطباعة مرتين في نفس السطر: [ 1 ] [ 3 ]
<% 2 . times do -%> <%= @name %> <% end -%>التطبيقات
توجد عدة تطبيقات للغة eRuby:
- ERB
- إيروبيس
- جمرة
erb
erb هو تطبيق لـ eRuby مكتوب بلغة برمجة Ruby فقط ومضمن في مكتبة Ruby القياسية. [ 2 ]
يمكن إنشاء قالب عن طريق تشغيل جزء من التعليمات البرمجية المكتوبة باستخدام كائن ERB. فيما يلي مثال بسيط:
require 'erb' x = 400 simple_template = " قيمة x هي: هي <%= x %>." renderer = ERB.new ( simple_template ) puts output = renderer.result ( binding ) <% # Output: قيمة x هي: 400 %>يختلف هذا الأسلوب عن أسلوب استيفاء السلاسل النصية ، الذي ينتج المخرجات فور إنشاء السلسلة النصية:
x = 400 string = "قيمة x هي: #{ x } " puts stringومع ذلك، فإن إنشاء السلسلة قبل تعريف المتغير الأول يمنع تنفيذ الكود:
string = "قيمة x هي: #{ x } " x = 400 puts stringلذا، فإن السبب الرئيسي لاستخدام كائن ERB هو كتابة القوالب مسبقًا، عن طريق ربط المتغيرات والأساليب التي قد لا تكون موجودة في وقت معين. تتم معالجة القالب فقط عند استدعاء النتيجة على كائن ERB. وللوصول إلى أساليب ومتغيرات مثيل الكائن، يستخدم ERB كائن ربط .
يُتاح الوصول إلى متغيرات وأساليب كائن ما من خلال كائن الربط الخاص الموجود في كل فئة من فئات روبي. من السهل الوصول إلى الأساليب والمتغيرات داخل أسلوب فئة ما ؛ ولكن للوصول إلى متغيرات فئة أخرى، يجب على تلك الفئة إتاحة كائن الربط الخاص بها عبر أسلوب عام. مثال على ذلك: [ 2 ] [ 4 ]
class ERBExample attr_accessor :variable1 # استخدام bind للوصول إلى متغيرات الفئة def render () renderer . result ( binding ) enddef initialize ( variable1 ) @variable1 = variable1 end# كشف دالة الربط الخاصة. def get_binding binding () end endمثال = ERBExample.new ( المتغير 1 ) المُعرِض = ERB.new ( القالب ) puts output = renderer.result ( مثال . get_binding )كما هو موضح، يتم عرض كائن الربط الخاص بالفئة . علاوة على ذلك، يُستخدم كائن الربط للوصول إلى متغيرات الفئة وأساليبها داخل أحد أساليبها.ERBExample
new()طريقة ERB
تأخذ الطريقة الجديدة لكائن ERB معلَمَين إضافيين . يُحدد المعلم الأول القالب، بينما يُحدد المعلم الثاني مستوى الأمان الذي يجعل القالب يعمل في سلسلة عمليات منفصلة . عند مستوى الأمان الأقصى وهو أربعة، لا يمكن لـ ERB استخدام كائن ربط إلا إذا تم وضع علامة عليه كموثوق. يُحدد المعلم الثالث مُعدِّلات اختيارية، يمكن استخدامها للتحكم في إضافة أسطر جديدة إلى المخرجات. على سبيل المثال، لضمان عدم إخراج ERB أسطرًا جديدة بعد نهايات الوسوم، يمكن إنشاء كائن ERB كما هو موضح أدناه: [ 3 ] [ 4 ]
renderer = ERB.new ( template , 3 , ' > ' )لتقديم المعامل الثالث فقط وتجاهل المعامل الثاني، استخدم 0 كمدخل للمعامل الثاني.
يحتوي ERB على العديد من الطرق الأخرى المتاحة التي يمكن استخدامها لعرض قالب. تجدون قائمة كاملة بواجهات برمجة التطبيقات (APIs) التي يوفرها كائن ERB في وثائق ERB .
تشغيل ERB من سطر الأوامر
توفر واجهة سطر الأوامر erb طريقة لمعالجة قوالب ERB من الطرفية. تقرأ ملف القالب، وتقيّم كود Ruby المضمن، وتطبع النتيجة في المخرجات. يمكن استخدام إعادة توجيه المخرجات لكتابة النتيجة إلى ملف بدلاً من طباعتها في المخرجات القياسية. [ 3 ]
erb sample1.erb.txt > my_view.html.erb في المثال أعلاه، يتم إعادة توجيه المخرجات إلى ملف my_view.html.erb .
يمكن تحميل مكتبات إضافية تابعة لجهات خارجية باستخدام -rالخيار متبوعًا باسم المكتبة، وهو ما يشبه الكلمة المفتاحية require.
يستخدم المثال التالي مكتبة IPAddr :
erb -r IPAddr sample1.txt.erb > my_view.html.erb لتحديد مستويات الأمان، يمكن تمرير رقم كوسيط سطر الأوامر باستخدام -Sالخيار: [ 3 ]
erb -S 4 sample1.erb.txt > my_view.html.erb إيروبيس
erubis هو تطبيق لـ eRuby مكتوب بلغة Ruby و Java . وهو يعمل بشكل أسرع من eRuby و ERb ويحتوي على العديد من الخيارات المفيدة، بما في ذلك العلامات البديلة التي تسمح باستخدام XML صالح . [ 6 ]
جمرة
إمبر هي تطبيق روبي خالص لـ eRuby لنظام لينكس . وهي تتيح تصحيح أخطاء قوالب eRuby، وتحسن قابليتها للتركيب، وتوفر توجيهات eRuby مختصرة وقوية. [ 7 ]
مقارنة بين علامات التنفيذ المختلفة
يقارن الجدول أدناه العلامات المتاحة في كل من التطبيقات المذكورة أعلاه: [ 4 ] [ 7 ] [ 8 ]
التطبيقات | علامة تعبير بسيطة<%=%> | علامة تنفيذ بسيطة<%%> | علامة تعليق بسيطة<%#%> | إمكانية تكوين نمط العلامة | تدوين مختصر للعلامات | <%~%> | <%+%> | <%<> | <%|> |
|---|---|---|---|---|---|---|---|---|---|
erb | نعم | نعم | نعم | لا | نعم، يمكن كتابتها على النحو التالي :<%xy%>%xy | لا | لا | لا | لا |
إيروبيس | نعم | نعم | نعم | نعم، يمكن تغيير نمط الوسم إلى أي شيء. مثال - إلخ. | نعم، حيث يمكن تغيير أنماط العلامات. | لا | لا | لا | لا |
جمرة | نعم | نعم | نعم | لا | نعم، يمكن كتابتها على النحو التالي :<%xy%>%xy | يتم تقييم محتوى الوسم كقالب eRuby. | يتم تقييم محتوى الوسم كشفرة روبي، ومن المتوقع أن يكون مسارًا يشير إلى ملف قالب روبي الذي تتم قراءته وتقييمه وعرضه. | الأمر نفسه، ولكن يتم ببساطة عرض محتويات الملف في المخرجات.<%+%> | يتعامل مع الكود المرفق ككتلة من كود روبي، وإذا لزم الأمر، يقوم بإلحاق doكلمة رئيسية بجسم الوسم. |
انظر أيضاً
مراجع
- 1 2 3 براون، غريغوري (2009). أفضل ممارسات روبي . أورايلي. الصفحات 279-281 . ISBN 978-0596523008.
- 1 2 3 S., Ruby; D., Thomas; Hansson D, Heinemeier (2011). تطوير مواقع الويب الرشيقة باستخدام Rails . The Pragmatic Programmers. ص 35. ISBN 978-1-934356-54-8.
- 1 2 3 4 5 إليس، ستيوارت (1 يوليو 2016). "مقدمة في قوالب ERB" . تم الاطلاع عليه بتاريخ 12 سبتمبر 2016 .
- 1 2 3 4 "ERB" .
- ↑ "ERB – Ruby Templating" . 2016. تم الاطلاع عليه بتاريخ 12 سبتمبر 2016 .
- ↑ "erubis | RubyGems.org | مضيف جواهر مجتمعك" . rubygems.org . تم الاسترجاع في 14 مايو 2026 .
- 1 2 "ember(1)" . 29 يونيو 2011. تم الاسترجاع في 12 سبتمبر 2016 .
- ↑ "إروبيس" . 2011. مؤرشف من الأصل في 27 مارس 2017. تم الاطلاع عليه في 12 سبتمبر 2016 .
روابط خارجية
- مكتبة إي آر بي
- "روبي والويب" ، فصل من "دليل المبرمج العملي"
- "web-mode.el" ، الوضع الرئيسي في إيماكس لتحرير قوالب إي روبي
- ERB – قوالب روبي
- وثائق erb
- مكتبة روبي القياسية
- وثائق إيروبيس، مؤرشفة بتاريخ ٢٧ مارس ٢٠١٧ على موقع Wayback Machine
- وثائق الأعضاء
- مكتبات حاسوب مجانية
- روبي (لغة برمجة)
- محركات القوالب
