Χρησιμοποιώντας το Sinatra στο Ruby

Στο προηγούμενο άρθρο σε αυτό σειρά άρθρων, μιλήσαμε για το τι είναι η Sinatra. Σε αυτό το άρθρο, θα δούμε έναν πραγματικό λειτουργικό κώδικα Sinatra, αγγίζοντας μερικά χαρακτηριστικά Sinatra, τα οποία θα εξερευνηθούν σε βάθος στα επερχόμενα άρθρα αυτής της σειράς.

Πριν ξεκινήσετε, θα πρέπει να προχωρήσετε και να εγκαταστήσετε τη Sinatra. Η εγκατάσταση του Sinatra είναι τόσο εύκολη όσο κάθε άλλο κόσμημα. Το Sinatra έχει μερικές εξαρτήσεις, αλλά τίποτα σημαντικό και δεν πρέπει να έχετε προβλήματα στην τοποθέτησή του σε οποιαδήποτε πλατφόρμα.

$ gem εγκαταστήστε sinatra

Γειά σου Κόσμε!

Η εφαρμογή "Hello world" της Sinatra είναι συγκλονιστικά απλή. Εκτός από τις απαιτούμενες γραμμές, το shebang και τα κενά, είναι μόνο τρεις γραμμές. Αυτό δεν είναι μόνο ένα μικρό μέρος της αίτησής σας, όπως ένας ελεγκτής σε μια εφαρμογή Rails, αυτό είναι όλο το πράγμα. Ένα άλλο πράγμα που μπορεί να παρατηρήσετε είναι ότι δεν χρειάζεται να τρέξετε κάτι σαν τη γεννήτρια Rails για να δημιουργήσετε μια εφαρμογή. Απλά επικολλήστε τον ακόλουθο κώδικα σε ένα νέο αρχείο Ruby και τελειώσατε.

instagram viewer
#! / usr / bin / env ruby
απαιτούν "ρουμπίνια"
απαιτούν 'sinatra'
πάρτε '/' κάνει
'Γειά σου Κόσμε!'
τέλος

Φυσικά αυτό δεν είναι ένα πολύ χρήσιμο πρόγραμμα, είναι απλώς "Hello world", αλλά ακόμα πιο χρήσιμες εφαρμογές στη Sinatra δεν είναι πολύ μεγαλύτερες. Λοιπόν, πώς τρέχετε αυτή τη μικροσκοπική εφαρμογή Web; Κάποιο σύνθετο script / διακομιστή εντολή? Όχι, απλά τρέξτε το αρχείο. Είναι απλά ένα πρόγραμμα Ruby, τρέξτε το!

inatra $ ./hello.rb
== Το Sinatra / 0.9.4 πήρε τη σκηνή στο 4567 για ανάπτυξη με backup από το Mongrel

Δεν είναι πολύ συναρπαστικό ακόμα. Ξεκίνησε το διακομιστή και δεσμεύεται στη θύρα 4567, οπότε προχωρήστε και τοποθετήστε το πρόγραμμα περιήγησης στο Web http://localhost: 4567/. Υπάρχει το μήνυμα "Hello world". Οι εφαρμογές Web δεν ήταν ποτέ τόσο εύκολες στο Ruby πριν.

Χρήση παραμέτρων

Ας δούμε λοιπόν κάτι πιο ενδιαφέρον. Ας κάνουμε μια εφαρμογή που σας καλωσορίζει από το όνομα. Για να γίνει αυτό, θα χρειαστεί να χρησιμοποιήσετε μια παράμετρο. Οι παράμετροι στη Sinatra είναι σαν όλα τα άλλα - απλά και απλά.

#! / usr / bin / env ruby
απαιτούν "ρουμπίνια"
απαιτούν 'sinatra'
πάρτε '/ hello /: όνομα' κάνετε
"Γεια σας # {params [: name]}!"
τέλος

Αφού κάνετε αυτήν την αλλαγή, θα χρειαστεί να κάνετε επανεκκίνηση της εφαρμογής Sinatra. Σκοτώστε το με το Ctrl-C και εκτελέστε το ξανά. (Υπάρχει ένας τρόπος γύρω από αυτό, αλλά θα το δούμε σε ένα μελλοντικό άρθρο.) Τώρα, οι παράμετροι είναι απλές. Κάναμε μια ενέργεια που ονομάζεται /hello/:name. Αυτή η σύνταξη μιμείται τι θα μοιάζουν με τις διευθύνσεις URL, οπότε πηγαίνετε στο http://localhost: 4567 / hello / Το όνομά σας για να το δούμε στη δράση.

ο /hello Το τμήμα αντιστοιχεί στο τμήμα της διεύθυνσης URL από το αίτημα που κάνατε και :όνομα θα απορροφήσει οποιοδήποτε άλλο κείμενο που θα το δώσετε και θα το βάλετε στο params κατακερματισμού κάτω από το κλειδί :όνομα. Οι παράμετροι είναι ακριβώς τόσο εύκολο. Υπάρχουν βέβαια πολλά περισσότερα που μπορείτε να κάνετε με αυτά, συμπεριλαμβανομένων των παραμέτρων που βασίζονται σε regexp, αλλά αυτό είναι το μόνο που θα χρειαστείτε σχεδόν σε κάθε περίπτωση.

Προσθήκη HTML

Τέλος, ας μοιραστώ αυτή την εφαρμογή με λίγο HTML. Η Sinatra θα επιστρέψει ό, τι παίρνει από τον χειριστή URL σας στο πρόγραμμα περιήγησης στο web. Μέχρι τώρα, έχουμε επιστρέψει μια σειρά κειμένου, αλλά μπορούμε να προσθέσουμε κάποια HTML εκεί χωρίς κανένα πρόβλημα. Θα χρησιμοποιήσουμε το ERB εδώ, όπως ακριβώς χρησιμοποιείται στο Rails. Υπάρχουν και άλλες (ενδεχομένως καλύτερες) επιλογές, αλλά αυτό είναι ίσως το πιο γνωστό, όπως συμβαίνει με τον Ruby, και θα κάνει καλά εδώ.

Πρώτον, η Sinatra θα αποκτήσει μια άποψη που ονομάζεται σχέδιο αν υπάρχει. Αυτή η προβολή διάταξης θα πρέπει να έχει a απόδοση παραγωγής δήλωση. Αυτή η δήλωση απόδοσης θα συλλάβει την έξοδο της συγκεκριμένης προβολής που παρέχεται. Αυτό σας επιτρέπει να δημιουργήσετε απλά σχήματα. Τέλος, έχουμε ένα Γειά σου προβολή, η οποία παράγει το πραγματικό μήνυμα γειτονιάς. Αυτή είναι η άποψη που έγινε με τη χρήση του erb: γεια κλήση μεθόδου. Θα παρατηρήσετε ότι δεν υπάρχουν ξεχωριστά αρχεία προβολής. Μπορεί να υπάρχει, αλλά για μια τέτοια μικρή εφαρμογή, είναι καλύτερο να κρατήσετε όλο τον κώδικα σε ένα μόνο αρχείο. Αν και οι προβολές καταλήγουν στο τέλος του αρχείου.

#! / usr / bin / env ruby
απαιτούν "ρουμπίνια"
απαιτούν 'sinatra'
πάρτε '/ hello /: όνομα' κάνετε
@name = παραμέτρους [: όνομα]
erb: γεια
τέλος
__ΤΕΛΟΣ__
@@ σχέδιο





@@ γεια σας

Γεια σας !

Και εκεί το έχετε. Διαθέτουμε μια πλήρη, λειτουργική εφαρμογή hello world σε περίπου 15 γραμμές κώδικα συμπεριλαμβανομένων των απόψεων. Τα παρακάτω άρθρα, θα εξετάσουμε προσεκτικά τις διαδρομές, πώς μπορείτε να αποθηκεύσετε και να ανακτήσετε δεδομένα και πώς να κάνετε καλύτερες προβολές με το HAML.

instagram story viewer