Merb, Le framework tellement bien qu’il sera integre dans Rails
Merb, Le framework tellement bien qu’il seraintegre dans Rails
Cyril Mougel
07 Mars 2009
Merb, Le framework tellement bien qu’il sera integre dans Rails
Merb, c’est quoi ?
1 Merb, c’est quoi ?
2 Les concepts de Merb
3 Les differentes partie de Merb
4 En pratique ?
Merb, Le framework tellement bien qu’il sera integre dans Rails
Merb, c’est quoi ?
Un coquille vide ?
Non, car utilise dans plein de projet
Non, car sinon il ne serait pas merge dans Rails
Non, car il a entraine des flameware comme Vim/Emacs
Non, car la majeur partie des Merbistes sont des Railers
Merb, Le framework tellement bien qu’il sera integre dans Rails
Merb, c’est quoi ?
C’est partie comment ?
”Start has a hack”
http ://pastie.org/14416
Ezmobius et Wycats
”No code is faster than no code”
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les concepts de Merb
1 Merb, c’est quoi ?
2 Les concepts de Merb
3 Les differentes partie de Merb
4 En pratique ?
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les concepts de Merb
La difference par rapport a Ruby On Rails ?
ORM Agnostic
Javascript Agnostic
Modulaire
API Public
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les concepts de Merb
Les points communs avec Ruby On Rails
MVC
View Agnostic
Rack based (nouveau chez Rails 2.2)
Thread safe (nouveau chez Rails 2.2)
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les differentes partie de Merb
1 Merb, c’est quoi ?
2 Les concepts de Merb
3 Les differentes partie de Merb
4 En pratique ?
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les differentes partie de Merb
Merb-core
equivalent a ActionPack mais en light
Routing, Rack, Bootloader, Controller
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les differentes partie de Merb
Merb-more
Le reste d’ActionPack
Des gems pratiques pour certaine options (merb-mailer,merb-cache, merb-action-args)
Utile, mais non critique
Merb, Le framework tellement bien qu’il sera integre dans Rails
Les differentes partie de Merb
Merb-plugins
Maintenu par le Merb Core Team
Les gems de communication avec les differentes briques(merb-sequel, merb-datamapper, merb-activerecord, etc...)
Non essentiel
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
1 Merb, c’est quoi ?
2 Les concepts de Merb
3 Les differentes partie de Merb
4 En pratique ?
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Render - Display - provides
On affiche une vue (Render)
On rend une resource (Display)
On fournit des formats (provides)
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Render
Un exemple de controller utilisant render :
1 c l a s s Widgets < A p p l i c a t i o n2 def l i c e n c e3 r e n d e r4 end56 def manual7 @manual = . . .8 r e n d e r @manual9 end
10 end
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Display
Un exemple de controller utilisant Display :
1 C l a s s U s e r s < A p p l i c a t i o n23 p r o v i d e s : xml , : j s o n , : yaml45 # Appel l a vue demande par l a r e qu e t e s u i v a n t6 # ce qu i e s t f o u r n i ( p r o v i d e s )7 # : xml , : j son , : yaml8 def show9 @user = User . g e t ( params [ : i d ] )
10 d i s p l a y @user11 end1213 # re cup e r e /app/ v iew / u s e r s / i ndex . ( html | xml | j s o n | yaml ) . haml14 def i n d e x15 @ u s e r s = User . a l l16 d i s p l a y @ u s e r s17 end1819 end
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
merb-action-args
Des parametres sur les actions ?
Simplifie les controllers
Base sur ParseTree
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Sans1 c l a s s U s e r s < A p p l i c a t i o n2 def show3 @user = User . g e t ( params [ : i d ] )4 d i s p l a y @user5 end67 def i n d e x8 @ u s e r s = User . p a g i n a t e ( params [ : page ] ,9 params [ : p e r p a g e ] )
10 d i s p l a y @ u s e r s11 end1213 end
Avec1 c l a s s U s e r s < A p p l i c a t i o n2 def show ( i d )3 @user = User . g e t ( i d )4 d i s p l a y @user5 end67 def i n d e x ( page =1, p e r p a g e =10)8 @ u s e r s = User . p a g i n a t e ( page ,9 p e r p a g e )
10 d i s p l a y @ u s e r s11 end1213 end
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Les routeurs
Resources ( resources :articles )
Tres lisible ( match(”/about”).to( :controller =¿”main”, :action =¿ ”about”).name( :about) )
url( :about)
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
merb-slice
Inspire des app de Django
Une sorte de mini application Merb
On y defini :
Ses routesSes controllers dans un namespaceSes modeles
router.rb : slice( :merb static pages slice, :path =¿ ”static”)
merb-auth la slice d’authentification
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
merb-cache
Une seule methode : cache
On invalid le cache avec eager cache
Pas differente methode, juste differente option
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
1 c l a s s P o s t s < A p p l i c a t i o n23 a f t e r : c l e a r f r a g m e n t c a c h e , : o n l y => [ : c r e a t e ]45 cache : show6 cache : index , : s t o r e => : a c t i o n s t o r e7 e a g e r c a c h e : c r e a t e , : i n d e x89 def i n d e x
10 @posts = Post . a l l11 r e n d e r12 end1314 def show15 @post = Post . f i r s t ( : i d => params [ : i d ] )16 r e n d e r17 end1819 def c r e a t e20 . . .21 end2223 p r i v a t e2425 def c l e a r f r a g m e n t c a c h e26 Merb : : Cache [ : memcached ] . d e l e t e ( ” custom key ” )27 end2829 end
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
Les resources ?
http ://wiki.merbivore.org
http ://merbivore.org/documentation.html
http ://merbunity.com/
Merb, Le framework tellement bien qu’il sera integre dans Rails
En pratique ?
questions ?