running bundle sometimes installs other gems than ones specified in Gemfile

Quick question. Often I add a gem to my Gemfile and then run bundle
install and I notice that it installs a bunch of other stuff (in
addition to what I wanted):

Installing warden (1.2.1)
Installing devise (2.2.3)
Installing fastercsv (1.5.5)
Installing formtastic (2.2.1)
Installing has_scope (0.5.1)
Installing responders (0.9.3)
Installing inherited_resources (1.4.0)

Does this mean that the gem I want to install is dependent on the
aforementioned gems?

Yes, one of the features is that it finds and installs dependencies for you, so you only have to list what you know that you're using directly, and not worry about all the requirements to get to where you can use them.

So this means I don't need to add devise to my Gemfile now and run a
bundle because devise is already isntalled and fully functioning in my
app?

John Merlino wrote in post #1106692:

So this means I don't need to add devise to my Gemfile now and run a
bundle because devise is already isntalled and fully functioning in my
app?

No. This means that if you have devise in your gem file, and run bundle,
all gems that devise depends on will also be installed whether they are
specifically listed in the gem file or not.

For example, devise depends on warden. So if you install devise, either
manually using the "gem install" command, or indirectly by including
devise in your gem file and running "bundle [install]" then warden
(along with devises' other dependencies) will be installed.

However, if you were to include warden in your gem file, and NOT devise,
then only warden would be installed (along with all of warden's
dependencies) and devise would NOT. Warden does not depend on devise.