במאמר הקודם בזה סדרת מאמרים, דיברנו על מה זה סינטרה. במאמר זה, נסתכל על כמה קוד סינטרה פונקציונאלי, ונגיע בכמה תכונות של סינטרה, אשר כולן ייבחנו לעומק במאמרים הקרובים בסדרה זו.
לפני שתתחיל, תצטרך להמשיך להתקין את סינטרה. התקנת סינטרה היא קלה כמו כל פנינה אחרת. לסינטרה אמנם יש כמה תלות, אך שום דבר לא חשוב ולא צריך להיות לך בעיות בהתקנתה בשום פלטפורמה.
פנינה להתקין סינטרה
שלום עולם!
אפליקציית "שלום עולם" של סינטרה פשוטה להפליא. לא כולל קווים מחייבים, שיבנג ומרווח לבן, זה רק שלוש שורות. זה לא רק חלק קטן מהיישום שלך, כמו בקר באפליקציית Rails, זה כל העניין. דבר נוסף שתבחין בכך הוא שלא היית צריך להפעיל דבר כמו מחולל Rails כדי ליצור יישום. פשוט הדבק את הקוד הבא בקובץ Ruby חדש וסיימת.
#! / usr / bin / env אודם
דורשים 'אודם'
דורש 'סינטרה'
לקבל / לעשות
'שלום עולם!'
סוף
כמובן שזו לא תוכנית מאוד שימושית, זו רק "שלום עולם", אבל יישומים שימושיים אפילו יותר בסינטרה אינם גדולים בהרבה. אז איך אתה מנהל את יישום האינטרנט הזעיר הזה? איזשהו מורכב סקריפט / שרת פקודה? לא, פשוט תריץ את הקובץ. זו רק תוכנית רובי, תריץ אותה!
$ inatra ./hello.rb
== Sinatra / 0.9.4 עלה לבמה ב- 4567 לפיתוח עם גיבוי ממונגרל
עדיין לא מאוד מרגש. הוא התחיל את השרת ומחייב ליציאה 4567, אז קדימה והפנה את דפדפן האינטרנט שלך אליו http://localhost: 4567/. יש את הודעת "שלום העולם" שלך. יישומי אינטרנט מעולם לא היו כה קלים ברובי בעבר.
באמצעות פרמטרים
אז בואו נסתכל על משהו קצת יותר מעניין. בואו נעשה יישום שמברך אותך בשם. לשם כך עלינו להשתמש בפרמטר. פרמטרים בסינטרה הם כמו כל דבר אחר - פשוט וישיר.
#! / usr / bin / env אודם
דורשים 'אודם'
דורש 'סינטרה'
קבל '/ שלום /: שם' עשה
"שלום # {params [: name]}!"
סוף
לאחר שתבצע את השינוי, תצטרך להפעיל מחדש את היישום Sinatra. הרוג אותו עם Ctrl-C והפעל אותו שוב. (יש דרך לעקוף זאת, אבל נסתכל על זה במאמר עתידי.) כעת, הפרמטרים הם פשוטים. ביצענו פעולה שנקראה /hello/:name. תחביר זה מחקה את המראה של כתובות האתרים, אז עבור אל http://localhost: 4567 / שלום / שמך לראות את זה בפעולה.
ה /hello החלק תואם את החלק הזה בכתובת האתר מהבקשה שביצעת, ו- : שם יספוג כל טקסט אחר שתמסור לו ותכניס אותו לסמל פרמטרים חשיש מתחת למפתח : שם. פרמטרים זה פשוט כל כך קל. יש כמובן הרבה יותר לעשות עם אלה, כולל פרמטרים מבוססי regexp, אבל זה כל מה שתצטרך כמעט בכל מקרה.
הוספת HTML
לבסוף, בואו לנתח את היישום הזה עם מעט HTML. סינטרה תחזיר את כל מה שהיא תקבל ממטפל הכתובות שלך לדפדפן האינטרנט. עד כה, בדיוק החזרנו מחרוזת טקסט, אך אנו יכולים להוסיף HTML כלשהו שם ללא שום בעיה. אנו נשתמש כאן ב- ERB, ממש כמו בשימוש ב- Rails. ישנן אפשרויות אחרות (טובות יותר), אך זו אולי המוכרת ביותר, כפי שהיא מגיעה עם רובי, ותצליח כאן.
ראשית, סינטרה תציג נוף הנקרא פריסה אם קיים. על תצוגת פריסה זו להיות עם תשואה הצהרה. הצהרת תשואה זו תתפוס את הפלט של התצוגה הספציפית המוצגת. זה מאפשר לך ליצור פריסות בצורה מאוד פשוטה. לבסוף, יש לנו א שלום תצוגה, שמייצרת את הודעת הלו בפועל. זו התצוגה שניתנה באמצעות ה- erb: שלום שיחת שיטה. תבחין כי אין קבצי תצוגה נפרדים. יכול להיות, אבל עבור יישום כה קטן, עדיף לשמור את כל הקוד בקובץ יחיד. אם כי התצוגות מנוצרות בסוף הקובץ.
#! / usr / bin / env אודם
דורשים 'אודם'
דורש 'סינטרה'
קבל '/ שלום /: שם' עשה
@name = params [: name]
erb: שלום
סוף
__END__
@@ פריסה
@@ שלוםשלום !
ושם יש לך את זה. יש לנו יישום עולם שלום מלא ופונקציונאלי בכ- 15 שורות קוד כולל התצוגות. המאמרים הבאים נבדוק מקרוב את המסלולים, כיצד ניתן לאחסן ולאחזר נתונים וכיצד ניתן להציג תצוגות טובות יותר עם HAML.