At the moment if you create a new engine, it will put such lines in its 
rakefile:

    APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
    load 'rails/tasks/engine.rake'

This way only a selected set of db tasks are available at the global rake 
namespace, whilst the full set of the engine's tasks is available at the 
app: namespace.

The other approach would be to do something like this:

    load File.expand_path("../spec/dummy/Rakefile", __FILE__)

This way ALL the tasks are available at the global rake namespace.

Could anyone explain me what are the benefits of selective global namespace 
tasks and app: namespacing?
It does seem clearer to have only the tasks really required for the 
development of the engine available in the global namespace, but is it the 
only reason?

The problem is that some gems expect to see tasks like db:test:prepare and 
db:abort_if_pending_migrations at the global namespace and fail to work 
properly until you bring these tasks out of the app:
Is it a fail on the side of these gems?

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to