@cyril: Ok je vois le genre, effectivement c'est une autre solution.

Après je trouve que pour ce genre de trucs assez simples Cells fait le boulot 
correctement.
Ça dépend de ta logique d'organisation je pense.
En tout cas c'est intéressant de voir une autre façon de faire :)


Simon Courtois


On Tuesday 11 June 2013 at 18:16, Cyril Mougel wrote:

> expose(:cart) { Cart.new(session[:cart]) }
> expose(:cart_decorate) { CartDecorator.decorate(cart) }
>  
>  
> 2013/6/11 Simon Courtois <[email protected] (mailto:[email protected])>
> > On est d'accord sur les filters :) par contre pour l'affiche du coup tu le 
> > fais à ajax du coup ?
> > Le côté immuable ça ok pas de souci, moi c'est plus la partie vue sur 
> > laquelle je me questionnais.
> >  
> >  
> > Simon Courtois
> >  
> >  
> > On Tuesday 11 June 2013 at 18:09, Cyril Mougel wrote:
> >  
> > > before_filter == BAN
> > > before == BAN
> > > after == BAN
> > >  
> > > voila ma régle :)
> > >  
> > > un shopping cart c'est simple, et avec de l'immutable, j'ai le 
> > > versionning implicite :p  
> > >  
> > > class Cart
> > >  
> > >   include Adamantium
> > >  
> > >   def initialize(items)
> > >     @items = items   
> > >   end
> > >  
> > >   def add(item)
> > >     Cart.new(@items | item)
> > >   end
> > > end
> > >  
> > >  
> > >  
> > >  
> > > 2013/6/11 Simon Courtois <[email protected] 
> > > (mailto:[email protected])>
> > > > @cyril du coup un exemple con mais un shopping cart tu le gères comment 
> > > > ?
> > > >  
> > > > Parce je suppose qu'à coups de before_filter et de decent_exposure tu 
> > > > peux faire qqchose mais je trouve ça un peu gore  
> > > > et le coup de mettre ta logique dans la vue ça me choque un peu. Après 
> > > > je compte pas partir en croisade sur les trucs
> > > > comme ça mais je sais pas ça me semble pas la solution.
> > > >  
> > > >  
> > > >  
> > > > Simon Courtois
> > > >  
> > > >  
> > > > On Tuesday 11 June 2013 at 17:46, Cyril Mougel wrote:
> > > >  
> > > > > Perso j'aime pas trop Cells, ca sandbox trop.
> > > > >  
> > > > > Je suis pour
> > > > >  
> > > > > decent_exposure
> > > > > Draper
> > > > > Object On Rails
> > > > > Virtus
> > > > > Adamantium
> > > > >  
> > > > >  
> > > > >  
> > > > > 2013/6/11 Guirec Corbel <[email protected] 
> > > > > (mailto:[email protected])>
> > > > > > @cyril : Tu oublis de factoriser par le coef DHH. J'appliquerai ta 
> > > > > > formule très bientôt.
> > > > > >  
> > > > > > @simon : je ne trouve rien à propos de delegate_finder. Je n'en ai 
> > > > > > jamais entendu parlé. Peux-tu montrer un exemple?
> > > > > >  
> > > > > > Je ne connaissais pas Cells. Je vais voir ce que c'est.  
> > > > > >  
> > > > > > @olivier : Merci pour ton avis.
> > > > > >  
> > > > > >  
> > > > > > Le 11 juin 2013 11:16, Olivier El Mekki <[email protected] 
> > > > > > (mailto:[email protected])> a écrit :
> > > > > >  
> > > > > > > Hello,
> > > > > > >  
> > > > > > > Le bon moment pour utiliser un presenter, c'est avant tout une 
> > > > > > > décision
> > > > > > > esthétique. La plupart du temps, les méthodes des presenters ne 
> > > > > > > seront
> > > > > > > utilisées qu'une seule fois, il n'y a donc pas ici de règle de
> > > > > > > refactoring applicable à tous les coups : le bon moment 
> > > > > > > d'utiliser un
> > > > > > > presenter est celui où tu estimes qu'il y a trop de logique de
> > > > > > > présentation dans ta vue.
> > > > > > >  
> > > > > > > Les helpers sont très similaires, mais ont plus vocation à être
> > > > > > > réutilisés, sans être liés à une resource particulière.
> > > > > > >  
> > > > > > > Tu peux t'en servir par exemple pour formatter des messages
> > > > > > > d'erreur, générer des boutons qui sont composés de plusieurs 
> > > > > > > éléments
> > > > > > > mais sont trop succints pour mériter un partial, etc.
> > > > > > >  
> > > > > > > Si tu t'apprêtes à utiliser un presenter pour n'y mettre qu'une 
> > > > > > > ou deux
> > > > > > > méthodes, il serait sûrement plus approprié d'utiliser des helpers
> > > > > > > égalements.
> > > > > > >  
> > > > > > > On 11:03 Tue 11 Jun     , Guirec Corbel wrote:
> > > > > > > > J'ai oublié de dire que, dans le cas des scopes, je parles de 
> > > > > > > > parties qui
> > > > > > > > concerne la présentation, utilisés par un menu par exemple.
> > > > > > > >
> > > > > > > > Une autre question, à partir de quel complexité faudrait t'il 
> > > > > > > > utiliser un
> > > > > > > > presenter. Si on à ça par exemple :
> > > > > > > >
> > > > > > > > f.association :company, label_method: :company_name, 
> > > > > > > > value_method:
> > > > > > > > :id, include_blank: false
> > > > > > > >
> > > > > > > > Est ce que ça serait utile de faire une fonction pour ça? Où 
> > > > > > > > mettre
> > > > > > > > cette fonction si ça devient trop complexe?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Le 11 juin 2013 10:43, Guirec Corbel <[email protected] 
> > > > > > > > (mailto:[email protected])> a écrit :
> > > > > > > >
> > > > > > > > > Bonjour,
> > > > > > > > >
> > > > > > > > > Aujourd'hui je pose une question que je trouve un peu basique 
> > > > > > > > > mais je suis
> > > > > > > > > totalement perdu : Quand utiliser draper, des presenters, des 
> > > > > > > > > helpers, des
> > > > > > > > > scopes ou des partials?
> > > > > > > > >
> > > > > > > > > J'ai lu le post de Philippe Creux :
> > > > > > > > > http://reverbhq.com/blog/2012/08/building-web-apps-with-activeadmin/
> > > > > > > > >  et
> > > > > > > > > je suis d'accord avec lui. On devrait utiliser draper quand 
> > > > > > > > > on a besoin
> > > > > > > > > d'une action simple agissant sur un modèle. Un presenter 
> > > > > > > > > contient une
> > > > > > > > > logique plus complexe agissant sur plusieurs modèles.
> > > > > > > > >
> > > > > > > > > J'aime bien la méthode de Ryan Bates présentée ici :
> > > > > > > > > http://railscasts.com/episodes/287-presenters-from-scratch, 
> > > > > > > > > le problème,
> > > > > > > > > pour moi, c'est qui créer une variable "user_presenter" qui 
> > > > > > > > > délègue des
> > > > > > > > > fonctions à sont modèle "user". Si l'on a beaucoup 
> > > > > > > > > d'attributs ça peut
> > > > > > > > > devenir compliqué. Je pense que l'on ne devrait pas pour 
> > > > > > > > > autant utiliser
> > > > > > > > > des fois "user_presenter" et d'autres fois "@user".
> > > > > > > > >
> > > > > > > > > Je n'aime pas non plus le fait d'instancier un objet 
> > > > > > > > > "@presenter" dans le
> > > > > > > > > contrôleur. Ça viole une des lois de Sandi Metz.
> > > > > > > > >
> > > > > > > > > En ce qui concerne les partials, ça sert à décomposé de gros 
> > > > > > > > > bloques de
> > > > > > > > > code dans de plus petits.
> > > > > > > > >
> > > > > > > > > Je m'interroge au niveau des scopes sur le fait d'appeler une 
> > > > > > > > > fonction
> > > > > > > > > d'un modèle dans une vue. Par exemple, si on fait ceci :
> > > > > > > > >
> > > > > > > > > <% User.active_users.each do |user| %>
> > > > > > > > >   ....
> > > > > > > > > <% end %>
> > > > > > > > >
> > > > > > > > > Je ne suis pas certain que ça soit une bonne pratique, qu'en 
> > > > > > > > > pensez-vous?
> > > > > > > > >
> > > > > > > > > Quant aux helpers... ils servent à créer du html qui ne se 
> > > > > > > > > sert d'aucun
> > > > > > > > > modèle?
> > > > > > > > >
> > > > > > > > > Quel est votre avis là dessus? Quels sont vos techniques? 
> > > > > > > > > Avez vous des
> > > > > > > > > bons exemples?
> > > > > > > > >
> > > > > > > > > Bye!
> > > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > --
> > > > > > > > Vous avez reçu ce message, car vous êtes abonné au groupe 
> > > > > > > > "Railsfrance" de Google Groups.
> > > > > > > > Pour transmettre des messages à ce groupe, envoyez un e-mail à 
> > > > > > > > l'adresse [email protected] 
> > > > > > > > (mailto:[email protected])
> > > > > > > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > > > > > > [email protected] 
> > > > > > > > (mailto:[email protected])
> > > > > > > > ---
> > > > > > > > Vous recevez ce message, car vous êtes abonné au groupe Google 
> > > > > > > > Groupes Railsfrance.
> > > > > > > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails 
> > > > > > > > le concernant, envoyez un e-mail à l'adresse 
> > > > > > > > [email protected] 
> > > > > > > > (mailto:railsfrance%[email protected]).
> > > > > > > > Pour plus d'options, visitez le site 
> > > > > > > > https://groups.google.com/groups/opt_out .
> > > > > > > >
> > > > > > > >
> > > > > > >  
> > > > > > >  
> > > > > > > --
> > > > > > > Olivier El Mekki.
> > > > > > >  
> > > > > > > --
> > > > > > > --
> > > > > > > Vous avez reçu ce message, car vous êtes abonné au groupe 
> > > > > > > "Railsfrance" de Google Groups.
> > > > > > > Pour transmettre des messages à ce groupe, envoyez un e-mail à 
> > > > > > > l'adresse [email protected] 
> > > > > > > (mailto:[email protected])
> > > > > > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > > > > > [email protected] 
> > > > > > > (mailto:[email protected])
> > > > > > > ---
> > > > > > > Vous recevez ce message, car vous êtes abonné au groupe Google 
> > > > > > > Groupes Railsfrance.
> > > > > > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails 
> > > > > > > le concernant, envoyez un e-mail à l'adresse 
> > > > > > > [email protected] 
> > > > > > > (mailto:railsfrance%[email protected]).
> > > > > > > Pour plus d'options, visitez le site 
> > > > > > > https://groups.google.com/groups/opt_out .
> > > > > > >  
> > > > > > >  
> > > > > >  
> > > > > > --  
> > > > > > --  
> > > > > > Vous avez reçu ce message, car vous êtes abonné au groupe 
> > > > > > "Railsfrance" de Google Groups.
> > > > > > Pour transmettre des messages à ce groupe, envoyez un e-mail à 
> > > > > > l'adresse [email protected] 
> > > > > > (mailto:[email protected])
> > > > > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > > > > [email protected] 
> > > > > > (mailto:[email protected])
> > > > > > ---  
> > > > > > Vous recevez ce message, car vous êtes abonné au groupe Google 
> > > > > > Groupes Railsfrance.
> > > > > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> > > > > > concernant, envoyez un e-mail à l'adresse 
> > > > > > [email protected] 
> > > > > > (mailto:railsfrance%[email protected]).
> > > > > > Pour plus d'options, visitez le site 
> > > > > > https://groups.google.com/groups/opt_out .
> > > > > >   
> > > > > >   
> > > > >  
> > > > >  
> > > > >  
> > > > > --  
> > > > > Cyril Mougel
> > > > > http://blog.shingara.fr  
> > > > >  
> > > > > --  
> > > > > --  
> > > > > Vous avez reçu ce message, car vous êtes abonné au groupe 
> > > > > "Railsfrance" de Google Groups.
> > > > > Pour transmettre des messages à ce groupe, envoyez un e-mail à 
> > > > > l'adresse [email protected] 
> > > > > (mailto:[email protected])
> > > > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > > > [email protected] 
> > > > > (mailto:[email protected])
> > > > > ---  
> > > > > Vous recevez ce message, car vous êtes abonné au groupe Google 
> > > > > Groupes Railsfrance.
> > > > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> > > > > concernant, envoyez un e-mail à l'adresse 
> > > > > [email protected] 
> > > > > (mailto:[email protected]).
> > > > > Pour plus d'options, visitez le site 
> > > > > https://groups.google.com/groups/opt_out .
> > > > >   
> > > > >   
> > > >  
> > > > --  
> > > > --  
> > > > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" 
> > > > de Google Groups.
> > > > Pour transmettre des messages à ce groupe, envoyez un e-mail à 
> > > > l'adresse [email protected] 
> > > > (mailto:[email protected])
> > > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > > [email protected] 
> > > > (mailto:[email protected])
> > > > ---  
> > > > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> > > > Railsfrance.
> > > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> > > > concernant, envoyez un e-mail à l'adresse 
> > > > [email protected] 
> > > > (mailto:railsfrance%[email protected]).
> > > > Pour plus d'options, visitez le site 
> > > > https://groups.google.com/groups/opt_out .
> > > >   
> > > >   
> > >  
> > >  
> > >  
> > > --  
> > > Cyril Mougel
> > > http://blog.shingara.fr  
> > >  
> > > --  
> > > --  
> > > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" 
> > > de Google Groups.
> > > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
> > > [email protected] (mailto:[email protected])
> > > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > > [email protected] 
> > > (mailto:[email protected])
> > > ---  
> > > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> > > Railsfrance.
> > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> > > concernant, envoyez un e-mail à l'adresse 
> > > [email protected] 
> > > (mailto:[email protected]).
> > > Pour plus d'options, visitez le site 
> > > https://groups.google.com/groups/opt_out .
> > >   
> > >   
> >  
> > --  
> > --  
> > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
> > Google Groups.
> > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
> > [email protected] (mailto:[email protected])
> > Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> > [email protected] 
> > (mailto:[email protected])
> > ---  
> > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> > Railsfrance.
> > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> > concernant, envoyez un e-mail à l'adresse 
> > [email protected] 
> > (mailto:railsfrance%[email protected]).
> > Pour plus d'options, visitez le site 
> > https://groups.google.com/groups/opt_out .
> >   
> >   
>  
>  
>  
> --  
> Cyril Mougel
> http://blog.shingara.fr  
>  
> --  
> --  
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
> [email protected] (mailto:[email protected])
> Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> [email protected] 
> (mailto:[email protected])
> ---  
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> Railsfrance.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> concernant, envoyez un e-mail à l'adresse 
> [email protected] 
> (mailto:[email protected]).
> Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out 
> .
>   
>   

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .


Répondre à