En introduksjon til et fantastisk ruby rammeverk: Sinatra
Nå vet jeg ikke hvor mange av dere som har prøvd Ruby men for de av oss som har brukt det en del så vet vi at det finnes en rekke rammeverk for å lage web applikasjoner.
Den mest kjente av de er vel kanskje Rails, som er et ganske stort og velfungerende rammeverk som gjør utviklingen av applikasjoner for web med MVC-prinsippet mye mye enklere.
Er man derimot på utkikk etter noe litt enklere der du er friere til å bestemme alt selv er Sinatra et veldig enkelt DSL (Domain Specific Language) for å lage web applikasjoner. Det passer perfekt til å lage små tjenester og API'er.
Den mest grunnleggende Sinatra applikasjonen er jo selvfølgelig Hello World.
Vi lager en fil som heter hello.rb, den trenger egentlig ikke hete noe spesielt. Jeg bruker alltid en ferdig mal når jeg begynner på nye prosjekter så da heter den alltid application.rb
Det finnes flere måter å starte en sinatra applikasjon.
Den kanskje enkleste metoden når man holder på med utvikling er at man kjører ruby scriptet sitt som vanlig.
Da vil du få endel output til terminalen din og serveren vil starte opp på port 4567.
Besøker du http://0.0.0.0:4567 vil du da se teksten "Hello World" og ingen ting annet.
Dette er jo enkelt i seg selv men for å vise litt mer hva som er mulig tar jeg for meg et annet eksempel. [1]
For de av oss som kan ruby er det ganske lett å se hva som foregår.
params hashen er sinatras måte å gi deg tilgang til parameterne gitt når folk kobler til f.eks http://dinside.com/user/<brukerid>
Da er <brukerid> ett parameter.
.readlines leser som dere kanskje skjønner den midlertidige filen som blir opprettet og Array.sort metoden sorterer linjene den har lest inn.
Tekstfilen hallo.txt inneholder
Da er det bare å starte opp Sinatra serveren med ruby sorter.rb i samme mappe som du har hallo.txt filen.
Vi bruker cURL til å koble til serveren og sende argumentet med fila.
Da får man det sorterte resultatet tilbake
Her kan du lese mer om cURL
Referanser:
[1] - http://rubylearning.com/blog/2009/06...a-web-service/
Håper denne guiden får noen fler til å prøve Ruby og Sinatra, håper ihvertfall ikke at min forferdelige evne til å skrive artikler skremmer noen bort fra å prøve :-)
Nå vet jeg ikke hvor mange av dere som har prøvd Ruby men for de av oss som har brukt det en del så vet vi at det finnes en rekke rammeverk for å lage web applikasjoner.
Den mest kjente av de er vel kanskje Rails, som er et ganske stort og velfungerende rammeverk som gjør utviklingen av applikasjoner for web med MVC-prinsippet mye mye enklere.
Er man derimot på utkikk etter noe litt enklere der du er friere til å bestemme alt selv er Sinatra et veldig enkelt DSL (Domain Specific Language) for å lage web applikasjoner. Det passer perfekt til å lage små tjenester og API'er.
Den mest grunnleggende Sinatra applikasjonen er jo selvfølgelig Hello World.
Vi lager en fil som heter hello.rb, den trenger egentlig ikke hete noe spesielt. Jeg bruker alltid en ferdig mal når jeg begynner på nye prosjekter så da heter den alltid application.rb
Kode
require 'rubygems' require 'sinatra' get '/' do "Hello World" end
Den kanskje enkleste metoden når man holder på med utvikling er at man kjører ruby scriptet sitt som vanlig.
Kode
ruby hello.rb
Besøker du http://0.0.0.0:4567 vil du da se teksten "Hello World" og ingen ting annet.
Dette er jo enkelt i seg selv men for å vise litt mer hva som er mulig tar jeg for meg et annet eksempel. [1]
Kode
# sorter.rb require 'rubygems' require 'sinatra' # Usage: curl -F "info=@hallo.txt" localhost:4567/sorter post '/sorter' do params[:info][:tempfile].readlines.sort end
params hashen er sinatras måte å gi deg tilgang til parameterne gitt når folk kobler til f.eks http://dinside.com/user/<brukerid>
Da er <brukerid> ett parameter.
.readlines leser som dere kanskje skjønner den midlertidige filen som blir opprettet og Array.sort metoden sorterer linjene den har lest inn.
Tekstfilen hallo.txt inneholder
Kode
sinatra og ruby er kjempe morro :)
Vi bruker cURL til å koble til serveren og sende argumentet med fila.
Kode
curl -F "info=@hallo.txt" localhost:4567/sorter
Kode
sinatra-guide git:(master) ✗ curl -F "info=@hallo.txt" localhost:4567/sorter er kjempe morro :) og ruby sinatra
Referanser:
[1] - http://rubylearning.com/blog/2009/06...a-web-service/
Håper denne guiden får noen fler til å prøve Ruby og Sinatra, håper ihvertfall ikke at min forferdelige evne til å skrive artikler skremmer noen bort fra å prøve :-)