I can't find the official documentation for Rails application templates,
but I guess they won't allow you to pass any arguments to the new generator.
Maybe I would have to specify "--skip-bundle -m path/to/my/template.rb"
in my ~/.railsrc and use the template for running "bundle install
--local"...
Em 21-12-2011 01:51, Pedro Nascimento escreveu:
You could accomplish something pretty similar by creating a Rails
template which skips bundle install, downloads a Gemfile.lock you
provide, and then run bundle install by itself.
On Wed, Dec 21, 2011 at 01:31, Rodrigo Rosenfeld Rosas
<[email protected] <mailto:[email protected]>> wrote:
Hi Yehuda, thanks for your response.
I understand what you've said, but what I'm suggesting is that
Bundler could try to resolve all dependencies with local gems
first before checking rubygems.org <http://rubygems.org>.
For instance, if there's currently a coffee-script version that
would fit the requirements in Gemfile for the application being
created, Bundler could use it instead of downloading the latest
version.
Maybe a new option could be included in Bundler like
--try-local-first and made available to the Rails new generator so
that we could append it to ~/.railsrc, for instance.
Another take would be adding some option to the rails new
generator like "--provided-gemfile-lock" where a Gemfile.lock
would be generated while packaging a Rails release and copied to
the created app.
I'm not sure which would be the better option, but I would really
like you to consider some way of making creating a new Rails
application as fast as it used to be before Rails 3.
Best,
Rodrigo.
Em 20-12-2011 21 <tel:20-12-2011%2021>:12, Yehuda Katz escreveu:
The reason this happens is that when you run `bundle install`
without a Gemfile.lock (the case in a new Rails app), bundler
checks with rubygems.org <http://rubygems.org> to see if there
are any new versions available. For instance, it is possible that
you have an old version of coffee-script on your system. Calling
`bundle install` without a `Gemfile.lock` means "make sure to get
the latest versions of my gems that are available." When you use
--local, it means "I assert that the gems are all available
locally, and I want you to use them even if there may be newer
ones available."
Using --local will not work for a new app on a new system,
because there are items in the default `Gemfile` that are not
actual dependencies of Rails. If --local reliably worked, you
would not need to run bundle install at all. This is because if
Bundler sees that there is no `Gemfile.lock` when you require
"bundler/setup", it tries to satisfy the dependencies from your
local gems. Unfortunately, it will not always work.
Yehuda Katz
(ph) 718.877.1325 <tel:718.877.1325>
On Tue, Dec 20, 2011 at 9:35 AM, Rodrigo Rosenfeld Rosas
<[email protected] <mailto:[email protected]>> wrote:
Creating a new Rails app nowadays in my computer with
Bundler-pre takes about 6s only for running "bundle install"
in the end of the new generator...
We create a new app instantaneously in Rails 1 and 2.
Shouldn't Bundler try to see if the local dependencies do
suffice before trying to ping rubygems.org <http://rubygems.org>?
For most cases you'll already have all dependencies locally.
Just try:
rails new empty --skip-bundle
cd empty
bundle install --local
And you'll see how much faster it is.
But it won't work if you run "rails new empty -d postgres"
and don't have postgres already installed.
So, shouldn't Bundler try to resolve locally first by default
and then use the normal method with the requests to
rubygems.org <http://rubygems.org>?
--
You received this message because you are subscribed to the Google Groups "Ruby on
Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en.