Je pensais juste au fait d’avoir une option/instruction qui dit de prendre en 
compte les validations du modèle
lors de la validation.

Dans mon cas c’était un peu plus compliqué parce que j’avais une association à 
valider qui était celle contenant
les validations Devise mais en gros j’avais cette méthode dans mon FormObject:

def valid?
  [super, account.valid?].reduce(:&)
end
Simon Courtois

On 4 mars 2014 at 12:27:00, Guirec Corbel (guirec.cor...@gmail.com) wrote:

@simon, merci pour tes idées. Je vais regarder à pour les dates. Pour la 
validation des modèles tu veux dire que le form objet ferais une réflection des 
validations des modèles si jamais il y en a certaines manquantes dans le form. 
Par exemple, si on un form comme ceci:

class Form
    include ActiveForm::Form
    include ActiveForm::ValidationReflector
    properties :username, on: :user
    self.main_model = :user
end

et un modèle comme ceci:

class User < ActiveRecord::Base
    validates :username, precense: true
end

il faudrait que form.valid? retourne false et remplissent les erreurs du 
modèle. C'est ça?

Ça semble être une bonne idée. Je suis effectivement intéressé par le code que 
tu as fait.



@florian, Je pense qu'il a certain conceptes qu'il ne faut pas oublier dans les 
autres languages. Mettre tout dans le modèle fait qu'il devient difficile à 
tester. De plus, séparer les responsabilités permet une meilleure réutilisation 
des objets ainsi qu'une meilleur maintenabilité. Je suis très heureux 
d'utiliser ces conceptes.

Bye!

Le 2014-03-04 04:17, Florian Dutey a écrit :
Je viens de jeter un coup d'oeil a la gem, je vous vois parler de 
ServiceObjects, de FormObjects... Vous seriez pas plus heureux a faire de la 
J2EE, voire meme du ZendFramework? :o

/troll


Le 4 mars 2014 17:02, Simon Courtois <happyn...@gmail.com> a écrit :
Salut Guirec,

J’ai pas encore eu l’occasion de tester ta gem mais je peux déjà te donner deux
points sur lesquels j’ai galéré avec Reform et dont tu peux tenir compte si tu 
le veux :)

1. Gestion des champs date. La conversion des champs de type date_select est 
faite très proche
    de ActiveRecord et du coup on la considère souvent comme acquise mais en 
général avec les
    FormObjects ce n’est pas pris en compte et ne marche pas.

2. Permettre de facilement appeler les validation des modèles si on le 
souhaite. Cas pratique, un form
    d’inscription qui tape sur Devise. Quand le modèle implemente :validatable 
ça peut être sympa de pouvoir
    facilement appeler ces validations en plus de celles du FormObject. Je 
pourrais te ressortir le code que j’ai
    utilisé pour faire marcher ça avec Reform ;)

En tout cas merci pour tes efforts, c’est cool :)

Simon Courtois

On 4 mars 2014 at 09:49:34, Florian Dutey (fdu...@gmail.com) wrote:

Si ton projet fait le boulot et que tu n'as rien a y ajouter, n'ajoute rien. 
Pour ma part, ce que je regarde de pres quand je cherche des gems, c'est si 
elles ont evolue avec les versions de rails... autrement...


Le 28 février 2014 22:25, Guirec Corbel <guirec.cor...@gmail.com> a écrit :
J'ai encore une question.

J'ai choisi de permettre l’instanciation d'une formulaire comme ceci 
`Form.new(model: model)` plutôt que de mimer ActiveRecord et prendre les 
paramètres comme ceci : `Form.new(params[:model])`. J'ai fait ça car je pense 
que ce n'est pas au form object de faire des find et de savoir comment 
instancier des modèles. Qu'en pensez-vous?

Merci!


Le 28 février 2014 09:00, Guirec Corbel <guirec.cor...@gmail.com> a écrit :

Bonjour les amis,

Depuis la publication de la gem sur rubyweekly, je suis devenu la plus grande 
star d'internet avec 70 followers sur ce projet. 

Mon problème, maintenant, c'est de faire évoluer la gem. Je crois que la gem 
remplis complètement le rôle qu'il a à tenir étant donné que ce rôle est assez 
simple. Si je ne fait pas évoluer la gem elle va tomber dans les non maintenus 
et j'aimerai beaucoup faire un projet actif. En résumé, j'aimerai beaucoup 
profiter de la popularité relative de mon projet pour continuer. 
Malheureusement, je n'ai pas d'idée pour aller plus loin.

Qu'en pensez-vous? Avez-vous des idées d'amélioration? Est-ce si grave que ça 
d'avoir un projet qui intéresse des gens mais inactif?

Bye!


Le 27 février 2014 13:00, Guirec Corbel <guirec.cor...@gmail.com> a écrit :

Regarde ça : http://vimeo.com/85181640


Le 27 février 2014 12:45, Guillaume Betous <guillaume.bet...@gmail.com> a écrit 
:

Oulah, pardon... je ne sais pas comment j'ai lu la première fois, mais
c'est bon. Je partais je ne sais pas pourquoi sur un concept fumeux de
POO mais en fait c'est plus simple que ça :)

Intéressant comme idée.

gUI

Le 27 février 2014 18:43, Guillaume Betous
<guillaume.bet...@gmail.com> a écrit :
> Pas mal :)
>
> Sérieusement, je sais pas ce que c'est un form object (et la petit
> intro sur le Github de Guirec ne m'a pas aidé). Un article de blog à
> conseiller ?
>
> gUI
>
> Le 27 février 2014 18:41, Guirec Corbel <guirec.cor...@gmail.com> a écrit :
>> Regardez dans la partie Libraries ici : http://rubyweekly.com/issues/184.
>> Avec ça, c'est la gloire assurée.
>>
>>
>> Le 27 février 2014 11:57, Sylvain Abélard <sylvain.abel...@gmail.com> a
>> écrit :
>>
>>>
>>>
>>> On Thursday, February 27, 2014 5:02:30 PM UTC+1, Guirec Corbel wrote:
>>>>
>>>> Ne vous inquiétez pas, c'était juste une blague. Je ne veux empêcher
>>>> personne de faire ce qu'il veut. En plus, c'est assez difficile pour moi de
>>>> me déplacer à Paris, je suis même pas certain d'y arriver cette année.
>>>>
>>>> J'aurais pas du mettre cette phrase, visiblement ça fait un troll.
>>>
>>>
>>> Non, mais je pense que beaucoup ont cette fausse perception alors je saute
>>> sur l'occasion pour clarifier ;)
>>>
>>> Have fun,
>>>
>>>>
>>>> Le 27 février 2014 10:58, Sylvain Abélard <sylvain...@gmail.com> a écrit
>>>> :
>>>>
>>>>> Bonjour,
>>>>>
>>>>> à ParisRB on aime encourager les gens à faire des talks, et on aime
>>>>> aussi les invités :)
>>>>> Il n'y a pas de sujet "réservé" : chacun sa solution, chacun son gem
>>>>> favori voire sa façon de l'utiliser, chacun son retour d'expérience.
>>>>>
>>>>> À une époque on a eu 3 talks sur les APIs en 3 mois, chacun sur un
>>>>> contexte différent : je trouve ça très enrichissant !
>>>>> Vous n'êtes pas d'accord ou vous voulez compléter un talk ? Faites le
>>>>> vôtre !
>>>>>
>>>>> Sur des conférences, on pourrait se dire que "trop d'un seul sujet c'est
>>>>> pénible", sur un meetup mensuel c'est super : en trois mois, ceux qui ne 
>>>>> se
>>>>> sont jamais penché sur le sujet ont un bel éventail pour décider quand ça
>>>>> leur arrivera, ceux qui ont commencé à se lancer suite au 1er talk auront
>>>>> des questions pour le 2e, et ainsi de suite.
>>>>>
>>>>> Bref : à moins que vous soyez 2 collègues de la même boîte sur le même
>>>>> projet avec les mêmes gems...
>>>>> Proposez et venez :)
>>>>>
>>>>>
>>>>>
>>>>> On Thursday, February 27, 2014 4:37:57 PM UTC+1, Philippe Creux wrote:
>>>>>>
>>>>>> Ah, même souci ici, je comptais faire un lightning talk sur les
>>>>>> services objects à VanRuby (Vancouver) ce soir... mais il semble qu'il y 
>>>>>> ai
>>>>>> déjà deux autres personnes qui en parlent... :-)
>>>>>>
>>>>>> φ
>>>>>>
>>>>>> On Feb 27, 2014 6:57 AM, "Guirec Corbel" <guirec...@gmail.com> wrote:
>>>>>>>
>>>>>>> Bonjour à tous,
>>>>>>>
>>>>>>> Je voulais vous annoncer que j'ai fait une gem sur les form objects :
>>>>>>> https://github.com/GCorbel/activeform-rails.
>>>>>>>
>>>>>>> La raison qui ma mener à faire cette gem c'est tout simple que je
>>>>>>> trouve que les forms objects est un très design pattern, assez rapide à
>>>>>>> comprendre, à mettre en place et le bénéfice est rapide. Comme recorder 
>>>>>>> 20
>>>>>>> fois la même chose n'est pas mon activité préféré j'ai cherché une gem. 
>>>>>>> Je
>>>>>>> suis rapidement tomber sur reform et après deux pull requests
>>>>>>> (https://github.com/apotonick/reform/pull/63 et
>>>>>>> https://github.com/apotonick/representable/pull/71) je me suis rendu 
>>>>>>> compte
>>>>>>> que c'est assez instable et je trouve qu'il y a beaucoup de chose pour 
>>>>>>> rien.
>>>>>>> Je n'ai pas trouvé de solution satisfaisante donc je l'ai fait moi même.
>>>>>>>
>>>>>>> J'ai changé un peu l'utilisation mais rien de révolutionnaire.
>>>>>>>
>>>>>>> Premièrement il faut toujours spécifier un objet lors de
>>>>>>> l'initialisation. Dans reform c'est `UserForm.new(user)` et moi j'ai
>>>>>>> `UserForm.new(user: user)`. Ça permet de simplifier les cas ou il y a
>>>>>>> plusieurs modèles pour l'utilisation et également dans la programation 
>>>>>>> de la
>>>>>>> gem.
>>>>>>>
>>>>>>> Deuxièmement, dans reform il faut fait un `form.validate(params)` qui
>>>>>>> va remplir les informations du formulaire. Il y a un `form.from_hash` 
>>>>>>> mais
>>>>>>> caché. J'ai choisi de rendre ça explicite et de faire
>>>>>>> `form.fill_attributes(params)` puis un `form.valid?`.
>>>>>>>
>>>>>>> Laisser moi savoir ce que vous en pensez.
>>>>>>>
>>>>>>> J'ai vu qu'il y a eu une présentation au Paris RB sur les form
>>>>>>> objects. C'est dommage pour moi car c'est une présentation que j'aurai 
>>>>>>> voulu
>>>>>>> faire si j'arrive a venir cette année. SVP, laissez moi les services
>>>>>>> objects!!!!!!
>>>>>>>
>>>>>>> --
>>>>>>> --
>>>>>>> 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 rails...@googlegroups.com
>>>>>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>>>>>>> railsfrance...@googlegroups.com
>>>>>>>
>>>>>>> ---
>>>>>>> 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 
>>>>>>> railsfrance...@googlegroups.com.
>>>>>>>
>>>>>>> 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
>>>>> rails...@googlegroups.com
>>>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>>>>> railsfrance...@googlegroups.com
>>>>> ---
>>>>> 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 railsfrance...@googlegroups.com.
>>>>> 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
>>> railsfrance@googlegroups.com
>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>>> railsfrance-unsubscr...@googlegroups.com
>>> ---
>>> 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
>>> railsfrance+unsubscr...@googlegroups.com.
>>> 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
>> railsfrance@googlegroups.com
>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> railsfrance-unsubscr...@googlegroups.com
>> ---
>> 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
>> railsfrance+unsubscr...@googlegroups.com.
>> Pour plus d'options, visitez le site
>> https://groups.google.com/groups/opt_out .
>
>
>
> --
> Pour la santé de votre ordinateur, préférez les logiciels libres.
> Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
> Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
> Suite bureautique : http://www.libreoffice.org/download/



--
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://www.libreoffice.org/download/

--
--
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
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 railsfrance+unsubscr...@googlegroups.com.
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
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 railsfrance+unsubscr...@googlegroups.com.
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
"Railsfrance".
Pour vous désabonner de ce groupe et ne plus en recevoir les messages, envoyez 
un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page 
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
"Railsfrance".
Pour vous désabonner de ce groupe et ne plus en recevoir les messages, envoyez 
un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page 
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
"Railsfrance".
Pour vous désabonner de ce groupe et ne plus en recevoir les messages, envoyez 
un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page 
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
---
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 railsfrance+unsubscr...@googlegroups.com.
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
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 railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .

Répondre à