باستخدام سيناترا في روبي

click fraud protection

في المقالة السابقة في هذا سلسلة من المقالاتتحدثنا عن ماهية سيناترا. في هذه المقالة ، سنلقي نظرة على بعض رموز سيناترا الوظيفية الحقيقية ، ونتناول بعض ميزات سيناترا ، والتي سيتم استكشافها جميعًا بعمق في المقالات القادمة في هذه السلسلة.

قبل البدء ، سيكون عليك المضي قدمًا وتثبيت Sinatra. تثبيت سيناترا سهل مثل أي جوهرة أخرى. لدى Sinatra عدد قليل من التبعيات ، ولكن لا يوجد شيء رئيسي ولا يجب أن تواجه أي مشاكل في تثبيته على أي نظام أساسي.

$ جوهرة تثبيت سيناترا

مرحبا بالعالم!

تطبيق Sinatra "Hello world" بسيط للغاية. لا تتضمن الخطوط المطلوبة ، و shebang والمسافات البيضاء ، إنها ثلاثة خطوط فقط. هذا ليس جزءًا صغيرًا من تطبيقك ، مثل وحدة تحكم في تطبيق Rails ، هذا هو الشيء بأكمله. شيء آخر قد تلاحظه هو أنك لا تحتاج إلى تشغيل أي شيء مثل منشئ Rails لإنشاء تطبيق. ما عليك سوى لصق الكود التالي في ملف Ruby جديد وستنتهي.

#! / usr / bin / env ruby
تتطلب "روبي جيمز"
تتطلب "سيناترا"
الحصول على القيام به
'مرحبا بالعالم!'
النهاية

بالطبع هذا ليس برنامجًا مفيدًا للغاية ، إنه مجرد "Hello world" ، ولكن حتى التطبيقات الأكثر فائدة في Sinatra ليست أكبر بكثير. لذا ، كيف تقوم بتشغيل تطبيق الويب الصغير هذا؟ نوع من التعقيد

instagram viewer
البرنامج النصي / الخادم أمر؟ كلا ، فقط قم بتشغيل الملف. إنه مجرد برنامج روبي ، قم بتشغيله!

inatra $ ./hello.rb
== Sinatra / 0.9.4 أخذ المنصة على 4567 من أجل التنمية مع النسخ الاحتياطي من Mongrel

ليست مثيرة للغاية حتى الان. بدأ تشغيل الخادم ومنضمًا إلى المنفذ 4567 ، لذا استمر وأشر متصفح الويب إلى http://localhost: 4567/. هناك رسالتك "مرحبا بالعالم". لم تكن تطبيقات الويب بهذه السهولة في روبي من قبل.

باستخدام المعلمات

لذلك دعونا ننظر إلى شيء أكثر إثارة للاهتمام. دعونا نصنع تطبيقًا يرحب بك بالاسم. للقيام بذلك ، سنحتاج إلى استخدام معلمة. المعلمات في سيناترا مثل أي شيء آخر - بسيطة ومباشرة.

#! / usr / bin / env ruby
تتطلب "روبي جيمز"
تتطلب "سيناترا"
احصل على "/ hello /: name"
"مرحبًا # {params [: name]}!"
النهاية

بمجرد إجراء هذا التغيير ، ستحتاج إلى إعادة تشغيل تطبيق Sinatra. اقتله باستخدام Ctrl-C وتشغيله مرة أخرى. (هناك طريقة للتغلب على هذا ، لكننا سنلقي نظرة على ذلك في مقالة مستقبلية.) الآن ، المعلمات واضحة. لقد قمنا بعمل يسمى /hello/:name. هذه البنية تحاكي شكل عناوين URL ، لذا اذهب إلى http://localhost: 4567 / مرحبا / اسمك لرؤيتها في العمل.

ال /hello الجزء يطابق ذلك الجزء من عنوان URL من طلب البحث الذي أجريته ، و :اسم سوف يمتص أي نص آخر تعطيه ويضعه في المعلمات تجزئة تحت المفتاح :اسم. المعلمات بهذه السهولة. هناك بالطبع الكثير مما يمكنك القيام به مع هذه ، بما في ذلك المعلمات القائمة على regexp ، ولكن هذا كل ما ستحتاجه في كل حالة تقريبًا.

مضيفا HTML

أخيرًا ، دعنا ننفق هذا التطبيق مع القليل من HTML. سيعيد Sinatra كل ما يحصل عليه من معالج URL الخاص بك إلى متصفح الويب. حتى الآن ، لقد قمنا للتو بإرجاع سلسلة نصية ، ولكن يمكننا إضافة بعض HTML هناك دون أي مشكلة. سنستخدم ERB هنا ، تمامًا كما هو مستخدم في Rails. هناك خيارات أخرى (يمكن القول أنها أفضل) ، ولكن ربما يكون هذا هو الأكثر شيوعًا ، لأنه يأتي مع روبي ، وسوف يكون جيدًا هنا.

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

#! / usr / bin / env ruby
تتطلب "روبي جيمز"
تتطلب "سيناترا"
احصل على "/ hello /: name"
name = المعلمات [: name]
erb: مرحبا
النهاية
__النهاية__
@@ نسق





@@ مرحبا

مرحبًا !

وهناك لديك. لدينا تطبيق مرحبًا بكامل وظائفه في العالم في حوالي 15 سطرًا من التعليمات البرمجية بما في ذلك المشاهدات. في المقالات التالية ، سنلقي نظرة فاحصة على المسارات ، وكيف يمكنك تخزين البيانات واسترجاعها ، وكيفية إجراء عروض أفضل باستخدام HAML.

instagram story viewer