Ouai bon, il n'y a pas une solution miracle. Il faut inclure les gems
dont on a besoin dans le gemspec.
Heureusement, on peut acceder aux gems du Gemfile en ruby. Ce qui veut
dire que dans le rakefile en utilisant Jeweler, on peut faire ceci:

http://gist.github.com/423891

Remarque: Un des nombreux interets de Bundler c'est qu'on peut
utiliser un repo git (avec un branche speciale si besoin en est) en
tant que gem. La, on est bloque. Seule solution, gemifier le repo git
et publier sur gemcutter. C'est ce que j'ai fait pour les gems
fomtastic et carrierwave en version Rails 3.

Dernier point concernant les engines. Les helpers de l'engine sont
loades dans l'application mere mais certains ne sont pas charges dans
les controlleurs. C'est le cas d'helpers qui ne sont pas "rattaches" a
un controlleur. Dans ce cas, dans la definition de l'engine, on
rajoute les lignes suivantes:

module Foo
  class Engine < Rails::Engine

    initializer "locomotive.add_helper" do |app|
      path = [*ActionController::Base.helpers_path] <<
File.dirname(__FILE__) + "/../../app/helpers"
      ActionController::Base.helpers_path = path
    end

  end
end

C'est bourrin mais c'est efficace.

Sinon j'ai pas l'impression que bcp de personnes utilisent les engines
sous Rails 3.




On 2 juin, 17:33, did <[email protected]> wrote:
> Ola tout le monde,
>
> Je suis en train de finaliser un engine qui se comporte comme une
> application standalone. Elle possede donc un Gemfile.
> La, je suis en train d'en faire un engine. J'ai bien genere un gemspec
> avec Jeweler.
> Seul souci, dans l'application parent qui va recevoir cet engine, je
> perds toutes les dependences qui se trouvaient dans le Gemfile de
> l'engine.
> La solution serait evidemment de les ajouter au moment ou je genere
> mon gemspec mais j'aimerais eviter d'avoir a maintenir mes dependences
> a 2 endroits (Gemfile + Gemspec).
>
>  J'aimerais bien avoir votre experience sur ce sujet.
> Merci beaucoup !
>
>   Did

-- 
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]

Répondre à