Search code examples
ruby-on-railsrubygemsunpackhoptoad

hoptoad_notified gem won't unpack into vendor


I think this should be working.

environment.rb

config.gem "hoptoad_notifer", :version => '=2.1.2'

list of installed gems:

$ gem list hoptoad_notifier

*** LOCAL GEMS ***

hoptoad_notifier (2.1.2)

Output of rake:gems

$ rake gems
(in /rails/appdir)
 - [R] hoptoad_notifier = 2.1.2

I = Installed
F = Frozen
R = Framework (loaded before rails starts)

Unpacking:

$ rake gems:unpack
(in /rails/appdir)
/rails/appdir (master)
$
#  that is, no result; immediate return

Why won't this gem unpack? The app starts up and I can run rake hoptoad:test just fine, so it's loading okay from the system gem. I just want to vendorize everything for deployment.


Solution

  • This was a pre-rails 1.0 app and I hadn't run rake rails:update recently.

    I did and it added this line:

    # boot.rb
    Rails::GemDependency.add_frozen_gem_path
    

    That tells Rails to check vendor/gems for frozen gems, or something.

    Then I could see the gem as installed and unpack it as expected:

    $ rake gems
    (in /rails/appdir)
    - [I] hoptoad_notifier = 2.1.2
    
    $ rake gems:unpack
    (in /rails/appdir)
    Unpacked gem: '/rails/appdir/vendor/gems/hoptoad_notifier-2.1.2'