In your Gemfile Bundler requires you to tell it where to lookup for gems. For 99.99% of people that is going to be rubygems.org, but it doesn't have to be. There has been talk about making this the default and then allowing someone to turn it off.
edit: The RubyRouges podcast has a great episode with the maintainer of Bundler where a lot of the difficulties with Bundler are discussed in depth. That's the "talk" I was referring too.
well, this is what's insane about Rails these days. we have a value which is correct in 99.99% of the cases, and we are (at best) debating whether or not to make it the default.
I say at best because obviously in my case I did not see a whole lot of debate. the GitHub issue for it is likewise extremely not-discussion-y. wherever the discussion for this incredibly controversial idea is taking place, I haven't seen it.
actually I hate to say it but one of the early (2006? 2005?) blog posts about the diff between Python and Ruby was that in Python's console, if you hit "q" or escape or ctrl-C or something, you get an error message like the 'source :rubygems' error message, which says "hit ctrl-D to escape." the blog post was saying this is basically the diff between the two languages, that Python would correct you if it knew what you wanted but you asked it the wrong way, whereas Ruby would just either support the most obvious option, or support both the most obvious option and the 'correct' option as well.
the idea in Ruby, and especially in Rails, is that if you know what the default is which most people are going to expect or try, you should support it. to say "we know you thought source :rubygems was the default, but it's not, you have to type it explicitly" is a little un-Ruby and a whole bunch un-Rails.
> in Python's console, if you hit "q" or escape or ctrl-C or something, you get an error message like the 'source :rubygems' error message, which says "hit ctrl-D to escape."
Ah, I think I know what you're talking about. I wasn't using Python back then, and I know exit() was added after that (the only way to leave the console before that was to Ctrl-D), but when you type "exit" in the console, Python responds:
Use exit() or Ctrl-D (i.e. EOF) to exit
This bugs countless Python devs, myself included. It wouldn't be so bad if the console had no idea what "exit" was and responded with a NameError, but the fact that it realizes what you were trying to do but tells you to do something else inconsequentially different is a minor annoyance.