Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
1. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Merb, Le framework tellement bien qu’il sera
int´gr´ dans Rails
ee
Cyril Mougel
07 Mars 2009
2. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Merb, c’est quoi ?
Merb, c’est quoi ?
1
Les concepts de Merb
2
Les diff´rentes partie de Merb
e
3
En pratique ?
4
3. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Merb, c’est quoi ?
Un coquille vide ?
Non, car utilis´ dans plein de projet
e
Non, car sinon il ne serait pas merg´ dans Rails
e
Non, car il a entrain´ des flameware comme Vim/Emacs
e
Non, car la majeur partie des Merbistes sont des Railers
4. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
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”
5. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les concepts de Merb
Merb, c’est quoi ?
1
Les concepts de Merb
2
Les diff´rentes partie de Merb
e
3
En pratique ?
4
6. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les concepts de Merb
La diff´rence par rapport ` Ruby On Rails ?
e a
ORM Agnostic
Javascript Agnostic
Modulaire
API Public
7. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
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)
8. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les diff´rentes partie de Merb
e
Merb, c’est quoi ?
1
Les concepts de Merb
2
Les diff´rentes partie de Merb
e
3
En pratique ?
4
9. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les diff´rentes partie de Merb
e
Merb-core
´quivalent ` ActionPack mais en light
e a
Routing, Rack, Bootloader, Controller
10. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les diff´rentes partie de Merb
e
Merb-more
Le reste d’ActionPack
Des gems pratiques pour certaine options (merb-mailer,
merb-cache, merb-action-args)
Utile, mais non critique
11. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
Les diff´rentes partie de Merb
e
Merb-plugins
Maintenu par le Merb Core Team
Les gems de communication avec les diff´rentes briques
e
(merb-sequel, merb-datamapper, merb-activerecord, etc...)
Non essentiel
12. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Merb, c’est quoi ?
1
Les concepts de Merb
2
Les diff´rentes partie de Merb
e
3
En pratique ?
4
13. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Render - Display - provides
On affiche une vue (Render)
On rend une resource (Display)
On fournit des formats (provides)
14. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
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 n
2 def l i c e n c e
3 render
4 end
5
6 d e f manual
7 @manual = . . .
8 r e n d e r @manual
9 end
10 end
15. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Display
Un exemple de controller utilisant Display :
1 Class Users < Application
2
3 p r o v i d e s : xml , : j s o n , : yaml
4
5 # A p p e l l a v u e demande p a r l a r e q u e t e s u i v a n t
6 # ce qui e s t f o u r n i ( p r o v i d e s )
7 # : xml , : j s o n , : yaml
8 d e f show
9 @ u s e r = U s e r . g e t ( params [ : i d ] )
10 d i s p l a y @user
11 end
12
# r e c u p e r e / app / v i e w / u s e r s / i n d e x . ( h t m l | xml | j s o n | yaml ) . haml
13
14 def index
15 @users = User . a l l
16 d i s p l a y @users
17 end
18
19 end
16. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
merb-action-args
Des param`tres sur les actions ?
e
Simplifie les controllers
Bas´ sur ParseTree
e
17. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Sans
1 c l a s s Users < Application
2 d e f show
3 @ u s e r = U s e r . g e t ( params [ : i d ] )
4 d i s p l a y @user
5 end
6
7 def index
8 @ u s e r s = U s e r . 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 @users
11 end
12
13 end
Avec
1 c l a s s Users < Application
2 d e f show ( i d )
3 @user = User . get ( i d )
4 d i s p l a y @user
5 end
6
7 d e f i n d e x ( page =1 , p e r p a g e =10)
8 @ u s e r s = U s e r . p a g i n a t e ( page ,
9 per page )
10 d i s p l a y @users
11 end
12
13 end
18. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Les routeurs
Resources ( resources :articles )
Tr`s lisible ( match(”/about”).to( :controller =¿
e
”main”, :action =¿ ”about”).name( :about) )
url( :about)
19. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
merb-slice
Inspir´ des app de Django
e
Une sorte de mini application Merb
On y d´fini :
e
Ses routes
Ses controllers dans un namespace
Ses mod`les
e
router.rb : slice( :merb static pages slice, :path =¿ ”static”)
merb-auth la slice d’authentification
20. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
merb-cache
Une seule m´thode : cache
e
On invalid le cache avec eager cache
Pas diff´rente m´thode, juste diff´rente option
e e e
21. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
1 c l a s s Posts < Application
2
3 a f te r : clear fragment cache , : only = [ : create ]
>
4
5 c a c h e : show
6 cache : index , : s t o r e = : a c t i o n s t o r e
>
7 eager cache : create , : index
8
9 def index
10 @posts = Post . a l l
11 render
12 end
13
14 d e f show
15 @ p o s t = P o s t . f i r s t ( : i d = params [ : i d ] )
>
16 render
17 end
18
19 def c r e a t e
20 ...
21 end
22
23 private
24
25 def c l e a r f r a g m e n t c a c h e
26 Merb : : Cache [ : memcached ] . d e l e t e ( ” c u s t o m k e y ” )
27 end
28
29 end
22. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
Les resources ?
http ://wiki.merbivore.org
http ://merbivore.org/documentation.html
http ://merbunity.com/
23. Merb, Le framework tellement bien qu’il sera int´gr´ dans Rails
ee
En pratique ?
questions ?