rubygems-bundler 0.9.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.noexec.yml +2 -0
 - data/.travis.yml +26 -0
 - data/CHANGELOG.md +9 -0
 - data/README.md +44 -75
 - data/bin/rubygems-bundler-uninstaller +5 -0
 - data/lib/rubygems-bundler/fix_wrapper.rb +13 -5
 - data/lib/rubygems-bundler/noexec.rb +2 -1
 - data/lib/rubygems-bundler/regenerate_binstubs_command.rb +15 -1
 - data/lib/rubygems-bundler/rubygems_bundler_installer.rb +6 -1
 - data/lib/rubygems-bundler/uninstaller.rb +10 -0
 - data/lib/rubygems-bundler/version.rb +1 -1
 - data/lib/rubygems-bundler/wrapper.rb +38 -0
 - data/lib/rubygems_plugin.rb +40 -7
 - data/rubygems-bundler.gemspec +2 -2
 - data/test/dtf/bundler_comment_test.sh +21 -0
 - data/test/dtf/rails_and_gemfile_comment_test.sh +21 -0
 - data/test/dtf/rubygems_comment_test.sh +16 -0
 - metadata +40 -19
 - data/bin/noexec +0 -3
 - data/bin/ruby_bundler_wrapper +0 -23
 - data/ext/wrapper_installer/extconf.rb +0 -22
 
    
        data/.noexec.yml
    ADDED
    
    
    
        data/.travis.yml
    ADDED
    
    | 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            language: ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            rvm:
         
     | 
| 
      
 3 
     | 
    
         
            +
              - 1.8.7
         
     | 
| 
      
 4 
     | 
    
         
            +
              - 1.9.2
         
     | 
| 
      
 5 
     | 
    
         
            +
              - 1.9.3
         
     | 
| 
      
 6 
     | 
    
         
            +
              - rbx-18mode
         
     | 
| 
      
 7 
     | 
    
         
            +
              - rbx-19mode
         
     | 
| 
      
 8 
     | 
    
         
            +
            before_install:
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 'rm -rf $rvm_path/gems/*/{bin,gems}/rubygems-bundler-* $rvm_path/gems/*/bin/ruby_*_wrapper'
         
     | 
| 
      
 10 
     | 
    
         
            +
              - hash -r
         
     | 
| 
      
 11 
     | 
    
         
            +
            install: gem install dtf
         
     | 
| 
      
 12 
     | 
    
         
            +
            before_script:
         
     | 
| 
      
 13 
     | 
    
         
            +
              - unset BUNDLE_GEMFILE
         
     | 
| 
      
 14 
     | 
    
         
            +
            script: dtf --text test/dtf/*
         
     | 
| 
      
 15 
     | 
    
         
            +
            notifications:
         
     | 
| 
      
 16 
     | 
    
         
            +
              irc:
         
     | 
| 
      
 17 
     | 
    
         
            +
                channels:
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - "irc.freenode.org#rubygems-bundler"
         
     | 
| 
      
 19 
     | 
    
         
            +
              email:
         
     | 
| 
      
 20 
     | 
    
         
            +
                recipients:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  - mpapis@gmail.com
         
     | 
| 
      
 22 
     | 
    
         
            +
                on_failure: change
         
     | 
| 
      
 23 
     | 
    
         
            +
            matrix:
         
     | 
| 
      
 24 
     | 
    
         
            +
              allow_failures:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - rvm: rbx-18mode
         
     | 
| 
      
 26 
     | 
    
         
            +
                - rvm: rbx-19mode
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Changelog
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 1.0.0
         
     | 
| 
      
 4 
     | 
    
         
            +
            date: 2012-05-09
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
             - removed the need to modify ~/.gemrc
         
     | 
| 
      
 7 
     | 
    
         
            +
             - change extensions code to an automatic installer
         
     | 
| 
      
 8 
     | 
    
         
            +
             - added uninstaller
         
     | 
| 
      
 9 
     | 
    
         
            +
             - removed old parts - there is only one way
         
     | 
| 
      
 10 
     | 
    
         
            +
             - fix bug with rubygems < 1.5
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       3 
12 
     | 
    
         
             
            ## 0.9.2
         
     | 
| 
       4 
13 
     | 
    
         
             
            date: 2012-05-05
         
     | 
| 
       5 
14 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,15 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            [](http://travis-ci.org/mpapis/rubygems-bundler)
         
     | 
| 
      
 2 
     | 
    
         
            +
            [](https://gemnasium.com/mpapis/rubygems-bundler)
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       1 
4 
     | 
    
         
             
            # rubygems-bundler && Noexec
         
     | 
| 
       2 
5 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            Let's stop using bundle exec 
     | 
| 
      
 6 
     | 
    
         
            +
            Let's stop using `bundle exec`, kthx.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Introduction of the 1.0.0 release: http://niczsoft.com/2012/05/rubygems-bundler-integration-gem-1-0-0/
         
     | 
| 
       4 
9 
     | 
    
         | 
| 
       5 
10 
     | 
    
         
             
            ## Installation
         
     | 
| 
       6 
11 
     | 
    
         | 
| 
       7 
12 
     | 
    
         
             
                gem install rubygems-bundler
         
     | 
| 
       8 
13 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            Add / Change a line in ~/.gemrc to:
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                custom_shebang: $env ruby_noexec_wrapper
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
14 
     | 
    
         
             
            Next run (once):
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
                gem regenerate_binstubs
         
     | 
| 
         @@ -18,34 +19,55 @@ And you're done! 
     | 
|
| 
       18 
19 
     | 
    
         | 
| 
       19 
20 
     | 
    
         
             
            ## Configuration
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
      
 22 
     | 
    
         
            +
            ### ~/.gemrc
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            It's no more required to modify `~/.gemrc` anymore,
         
     | 
| 
      
 25 
     | 
    
         
            +
            just remove the old entry to be sure it works as expected.
         
     | 
| 
      
 26 
     | 
    
         
            +
            In case you need to use your own `custom_shebang`
         
     | 
| 
      
 27 
     | 
    
         
            +
            you can define it in `~/.gemrc` to override the default:
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                custom_shebang: $env <your_custom_shebang_program>
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            ### ./.noexec.yaml
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       21 
33 
     | 
    
         
             
            Though you can let noexec do it's own thing and rely on looking up your binary via your Gemfile, 
         
     | 
| 
       22 
34 
     | 
    
         
             
            you can also specify which binaries you want included or excluded. 
         
     | 
| 
       23 
35 
     | 
    
         
             
            Create a .noexec.yaml file along side any Gemfiles you want to use. 
         
     | 
| 
       24 
36 
     | 
    
         
             
            Then, to enable (or disable) the usage of your particular binary into your bundle, 
         
     | 
| 
       25 
37 
     | 
    
         
             
            add an include or exclude section. For example:
         
     | 
| 
       26 
38 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 39 
     | 
    
         
            +
            ```yml
         
     | 
| 
      
 40 
     | 
    
         
            +
            exclude: [rake]
         
     | 
| 
      
 41 
     | 
    
         
            +
            ```
         
     | 
| 
      
 42 
     | 
    
         
            +
            Or, 
         
     | 
| 
       28 
43 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 44 
     | 
    
         
            +
            ```yml
         
     | 
| 
      
 45 
     | 
    
         
            +
            include: [haml]
         
     | 
| 
      
 46 
     | 
    
         
            +
            ```
         
     | 
| 
       30 
47 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
            ### NOEXEC=skip
         
     | 
| 
       32 
49 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
            In case you need explicitly skip loading Bundler.setup, prefix your command with `NOEXEC=0`:
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                NOEXEC=0 rails new app
         
     | 
| 
      
 53 
     | 
    
         
            +
                NOEXEC=skip gist
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            both `0` and `skip` will work, choose the one that sounds better for you.
         
     | 
| 
       34 
56 
     | 
    
         | 
| 
       35 
57 
     | 
    
         
             
            ## Problems?
         
     | 
| 
       36 
58 
     | 
    
         | 
| 
       37 
59 
     | 
    
         
             
            Things not going the way you'd like? Try your command again with 
         
     | 
| 
       38 
     | 
    
         
            -
            NOEXEC_DEBUG=1 set and create a ticket. I'll fix it right away!
         
     | 
| 
      
 60 
     | 
    
         
            +
            `NOEXEC_DEBUG=1` set and create a ticket. I'll fix it right away!
         
     | 
| 
       39 
61 
     | 
    
         | 
| 
       40 
62 
     | 
    
         
             
            ### IRC support:
         
     | 
| 
       41 
63 
     | 
    
         | 
| 
       42 
64 
     | 
    
         
             
            [#rubygems-bundler on irc.freenode.net](http://webchat.freenode.net/?channels=#rubygems-bundler)
         
     | 
| 
       43 
65 
     | 
    
         | 
| 
       44 
66 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
            ## How does this work 
     | 
| 
      
 67 
     | 
    
         
            +
            ## How does this work (ruby_noexec_wrapper)
         
     | 
| 
       46 
68 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
            It  
     | 
| 
       48 
     | 
    
         
            -
            Then, when you run  
     | 
| 
      
 69 
     | 
    
         
            +
            It modifies gem wrappers shebang to load `ruby_noexec_wrapper`.
         
     | 
| 
      
 70 
     | 
    
         
            +
            Then, when you run gem binaries, it takes a look at your working directory,
         
     | 
| 
       49 
71 
     | 
    
         
             
            and every directory above it until it can find a `Gemfile`. 
         
     | 
| 
       50 
72 
     | 
    
         
             
            If the executable you're running is present in your Gemfile, 
         
     | 
| 
       51 
73 
     | 
    
         
             
            it switches to using that `Gemfile` instead (via `Bundle.setup`).
         
     | 
| 
         @@ -53,78 +75,25 @@ it switches to using that `Gemfile` instead (via `Bundle.setup`). 
     | 
|
| 
       53 
75 
     | 
    
         
             
            Rubygems and Bundler integration, makes executable wrappers
         
     | 
| 
       54 
76 
     | 
    
         
             
            generated by rubygems aware of bundler.
         
     | 
| 
       55 
77 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
            This gem is intended to fill in the integration gap between
         
     | 
| 
       59 
     | 
    
         
            -
            Bundler and Rubygems, it also backports shebang customization
         
     | 
| 
       60 
     | 
    
         
            -
            from rubygems 1.9 to older versions - down to 1.3.7.
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
            With this gem rubygems generated wrappers will allow to
         
     | 
| 
       63 
     | 
    
         
            -
            use bundler when asked for.
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            Using this gem solves problem of calling `bundle exec ...`
         
     | 
| 
       66 
     | 
    
         
            -
            with your every command.
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
            Please note that this gem can make your gem executables
         
     | 
| 
       69 
     | 
    
         
            -
            load in versions specified in Gemfile!
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
            The problem with Gemfile is that you can have few of them,
         
     | 
| 
       72 
     | 
    
         
            -
            so expect that gem version for executable will be taken from
         
     | 
| 
       73 
     | 
    
         
            -
            `~/Gemfile` when your project is in `~/projects/my_project`
         
     | 
| 
       74 
     | 
    
         
            -
            and does not contain `Gemfile`
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
            Last note is that bundler handling can be used only when bundler is
         
     | 
| 
       77 
     | 
    
         
            -
            installed, but you will be warned when it is 
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
            # Uninstallation
         
     | 
| 
      
 78 
     | 
    
         
            +
            rubygems-bundler was merged with [noexec gem](https://github.com/joshbuddy/noexec) in version **0.9.0**.
         
     | 
| 
       80 
79 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
      
 80 
     | 
    
         
            +
            ## Uninstallation
         
     | 
| 
       82 
81 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                 
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
            and run `gem regenerate_binstubs`
         
     | 
| 
      
 82 
     | 
    
         
            +
                rubygems-bundler-uninstaller
         
     | 
| 
      
 83 
     | 
    
         
            +
                gem uninstall rubygems-bundler
         
     | 
| 
       86 
84 
     | 
    
         | 
| 
       87 
85 
     | 
    
         
             
            this will set all gems to `/usr/bin/env ruby` which is one of the safest choices (especially when using rvm).
         
     | 
| 
       88 
86 
     | 
    
         | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
            Add / Change a line in ~/.gemrc to:
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                custom_shebang: $env ruby_bundler_wrapper
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
            Next run (once):
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                gem regenerate_binstubs
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            Wrappers generated by this gem will replace original rubygems wrapper,
         
     | 
| 
       100 
     | 
    
         
            -
            but it will not change wrapper behavior unless explicitly asked for.
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
            To allow using bundler when available, but fallback to rubygems when not:
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
                export USE_BUNDLER=try
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
            To force usage of bundler:
         
     | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
                export USE_BUNDLER=force
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
            Some gems should not be called with bundler support,
         
     | 
| 
       111 
     | 
    
         
            -
            to blacklist them use the following line:
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
                BUNDLER_BLACKLIST="cheat heroku"
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
            To make your choices persistent put them into `~/.bashrc` or `~/.rvmrc`.
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
            # Authors
         
     | 
| 
      
 87 
     | 
    
         
            +
            ## Authors
         
     | 
| 
       119 
88 
     | 
    
         | 
| 
       120 
89 
     | 
    
         
             
             - Joshua Hull <joshbuddy@gmail.com>
         
     | 
| 
       121 
90 
     | 
    
         
             
             - Michal Papis <mpapis@gmail.com>
         
     | 
| 
       122 
91 
     | 
    
         | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
      
 92 
     | 
    
         
            +
            ## Thanks
         
     | 
| 
       124 
93 
     | 
    
         | 
| 
       125 
94 
     | 
    
         
             
             - Carl Lerche     : help with the noexec code
         
     | 
| 
       126 
     | 
    
         
            -
             - Yehuda Katz     : the initial patch code
         
     | 
| 
       127 
     | 
    
         
            -
             - Wayne E. Seguin : support in writing good code
         
     | 
| 
       128 
95 
     | 
    
         
             
             - Evan Phoenix    : support on rubygems internalls
         
     | 
| 
       129 
     | 
    
         
            -
             -  
     | 
| 
      
 96 
     | 
    
         
            +
             - Yehuda Katz     : the initial patch code, helping on making it even more usable
         
     | 
| 
       130 
97 
     | 
    
         
             
             - Loren Segal     : shebang customization idea and explanations
         
     | 
| 
      
 98 
     | 
    
         
            +
             - Wayne E. Seguin : support in writing good code
         
     | 
| 
      
 99 
     | 
    
         
            +
             - André Arko      : clarifications how rubygems/bundler works
         
     | 
| 
         @@ -1,5 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            msg = "\n\nOlder rubygems-bundler found, please uninstall it with:\n\n    "
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            error_source = caller.find{|s| s=~/\/rubygems-bundler-/ }.split(/:/).first
         
     | 
| 
      
 4 
     | 
    
         
            +
            gem_source = File.expand_path("../../../..", error_source)
         
     | 
| 
      
 5 
     | 
    
         
            +
            gem_version = error_source.sub(/^.*\/rubygems-bundler-([^\/]+)\/.*$/,'\1')
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            if ENV['GEM_HOME'] or ENV['GEM_PATH']
         
     | 
| 
      
 8 
     | 
    
         
            +
              msg << "GEM_HOME=\"#{gem_source}\" " unless ENV['GEM_HOME'] == gem_source
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            msg << "gem uninstall -ax rubygems-bundler -v #{gem_version}\n\n"
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            raise msg
         
     | 
| 
         @@ -49,8 +49,9 @@ begin 
     | 
|
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
                def setup
         
     | 
| 
       51 
51 
     | 
    
         
             
                  log "Noexec"
         
     | 
| 
       52 
     | 
    
         
            -
                  return if File.basename($0) 
     | 
| 
      
 52 
     | 
    
         
            +
                  return if %w(bundle rubygems-bundler-uninstaller).include?(File.basename($0))
         
     | 
| 
       53 
53 
     | 
    
         
             
                  return if ENV['BUNDLE_GEMFILE']
         
     | 
| 
      
 54 
     | 
    
         
            +
                  return if %w(0 skip).include?( ENV['NOEXEC'] )
         
     | 
| 
       54 
55 
     | 
    
         
             
                  gemfile = File.join(CURRENT, "Gemfile")
         
     | 
| 
       55 
56 
     | 
    
         
             
                  while true
         
     | 
| 
       56 
57 
     | 
    
         
             
                    if File.exist?(gemfile)
         
     | 
| 
         @@ -1,4 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems/command_manager'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'rubygems/installer'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rubygems/version'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'rubygems-bundler/wrapper'
         
     | 
| 
       2 
5 
     | 
    
         | 
| 
       3 
6 
     | 
    
         
             
            class RegenerateBinstubsCommand < Gem::Command
         
     | 
| 
       4 
7 
     | 
    
         
             
              def initialize
         
     | 
| 
         @@ -26,6 +29,17 @@ class RegenerateBinstubsCommand < Gem::Command 
     | 
|
| 
       26 
29 
     | 
    
         
             
              end
         
     | 
| 
       27 
30 
     | 
    
         | 
| 
       28 
31 
     | 
    
         
             
              def execute
         
     | 
| 
      
 32 
     | 
    
         
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('2.0.0') then
         
     | 
| 
      
 33 
     | 
    
         
            +
                  # https://github.com/rubygems/rubygems/issues/326
         
     | 
| 
      
 34 
     | 
    
         
            +
                  puts "try also: gem pristine --binstubs"
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
                Gem.configuration[:custom_shebang] ||= '$env ruby_noexec_wrapper'
         
     | 
| 
      
 37 
     | 
    
         
            +
                RubygemsBundler::Wrapper.install
         
     | 
| 
      
 38 
     | 
    
         
            +
                execute_no_wrapper
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              def execute_no_wrapper
         
     | 
| 
      
 42 
     | 
    
         
            +
                require 'rubygems-bundler/rubygems_bundler_installer'
         
     | 
| 
       29 
43 
     | 
    
         
             
                name = get_one_optional_argument || ''
         
     | 
| 
       30 
44 
     | 
    
         
             
                specs = installed_gems.select{|spec| spec.name =~ /^#{name}/i }
         
     | 
| 
       31 
45 
     | 
    
         
             
                specs.each do |spec|
         
     | 
| 
         @@ -53,4 +67,4 @@ class RegenerateBinstubsCommand < Gem::Command 
     | 
|
| 
       53 
67 
     | 
    
         
             
                  Gem.source_index.map{|name,spec| spec}
         
     | 
| 
       54 
68 
     | 
    
         
             
                end
         
     | 
| 
       55 
69 
     | 
    
         
             
              end
         
     | 
| 
       56 
     | 
    
         
            -
            end
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -23,7 +23,8 @@ module RubyGemsBundlerInstaller 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
              def self.shebang(inst, bin_file_name)
         
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
      
 26 
     | 
    
         
            +
                # options were defined first in 1.5, we want to support back to 1.3.7
         
     | 
| 
      
 27 
     | 
    
         
            +
                ruby_name = Gem::ConfigMap[:ruby_install_name] if inst.respond_to?('options') ? inst.options[:env_shebang] :inst.instance_variable_get(:@env_shebang)
         
     | 
| 
       27 
28 
     | 
    
         
             
                bindir = inst.bin_dir ? inst.bin_dir : Gem.bindir(inst.gem_home)
         
     | 
| 
       28 
29 
     | 
    
         
             
                path = File.join bindir, inst.formatted_program_filename(bin_file_name)
         
     | 
| 
       29 
30 
     | 
    
         
             
                first_line = File.open(path, "rb") {|file| file.gets}
         
     | 
| 
         @@ -88,3 +89,7 @@ TEXT 
     | 
|
| 
       88 
89 
     | 
    
         
             
              end
         
     | 
| 
       89 
90 
     | 
    
         | 
| 
       90 
91 
     | 
    
         
             
            end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            Gem.post_install do |inst|
         
     | 
| 
      
 94 
     | 
    
         
            +
              RubyGemsBundlerInstaller.bundler_generate_bin(inst)
         
     | 
| 
      
 95 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems-bundler/wrapper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rubygems-bundler/regenerate_binstubs_command'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module RubygemsBundler
         
     | 
| 
      
 5 
     | 
    
         
            +
              def self.uninstall
         
     | 
| 
      
 6 
     | 
    
         
            +
                Gem.configuration[:custom_shebang] = '$env ruby'
         
     | 
| 
      
 7 
     | 
    
         
            +
                RegenerateBinstubsCommand.new.execute_no_wrapper
         
     | 
| 
      
 8 
     | 
    
         
            +
                Wrapper.uninstall
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # install / uninstall wrapper
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module RubygemsBundler
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Wrapper
         
     | 
| 
      
 7 
     | 
    
         
            +
                def self.wrapper_name
         
     | 
| 
      
 8 
     | 
    
         
            +
                  'ruby_noexec_wrapper'
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
                def self.bindir
         
     | 
| 
      
 11 
     | 
    
         
            +
                  Gem.respond_to?(:bindir,true) ? Gem.send(:bindir) : File.join(Gem.dir, 'bin')
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
                def self.destination
         
     | 
| 
      
 14 
     | 
    
         
            +
                  File.expand_path( wrapper_name, bindir )
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
                def self.install
         
     | 
| 
      
 17 
     | 
    
         
            +
                  rubygems_bundler_spec =
         
     | 
| 
      
 18 
     | 
    
         
            +
                    if Gem::Specification.respond_to?(:find_by_name)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      Gem::Specification.find_by_name("rubygems-bundler")
         
     | 
| 
      
 20 
     | 
    
         
            +
                    else
         
     | 
| 
      
 21 
     | 
    
         
            +
                      Gem.source_index.find_name("rubygems-bundler").last
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  if rubygems_bundler_spec
         
     | 
| 
      
 25 
     | 
    
         
            +
                    wrapper_path = File.expand_path( "bin/#{wrapper_name}", rubygems_bundler_spec.full_gem_path )
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  if rubygems_bundler_spec && File.exist?(wrapper_path) && !File.exist?(destination)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    FileUtils.mkdir_p(bindir)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    FileUtils.cp(wrapper_path, destination)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    File.chmod(0775, destination)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
                def self.uninstall
         
     | 
| 
      
 35 
     | 
    
         
            +
                  FileUtils.rm_f(destination) if File.exist?(destination)
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/rubygems_plugin.rb
    CHANGED
    
    | 
         @@ -1,9 +1,42 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            rubygems_bundler_spec =
         
     | 
| 
      
 2 
     | 
    
         
            +
              if Gem::Specification.respond_to?(:find_by_name)
         
     | 
| 
      
 3 
     | 
    
         
            +
                Gem::Specification.find_by_name("rubygems-bundler")
         
     | 
| 
      
 4 
     | 
    
         
            +
              else
         
     | 
| 
      
 5 
     | 
    
         
            +
                Gem.source_index.find_name("rubygems-bundler").last
         
     | 
| 
      
 6 
     | 
    
         
            +
              end
         
     | 
| 
       4 
7 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            called_version = __FILE__.sub(/^.*\/rubygems-bundler-([^\/]+)\/.*$/,'\1')
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            # continue only if loaded and called versions all the same
         
     | 
| 
      
 11 
     | 
    
         
            +
            if rubygems_bundler_spec and rubygems_bundler_spec.version.to_s == called_version
         
     | 
| 
      
 12 
     | 
    
         
            +
              require 'rubygems/version'
         
     | 
| 
      
 13 
     | 
    
         
            +
              require 'rubygems-bundler/wrapper'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              # Set the custom_shebang if user did not set one
         
     | 
| 
      
 16 
     | 
    
         
            +
              Gem.pre_install do |inst|
         
     | 
| 
      
 17 
     | 
    
         
            +
                Gem.configuration[:custom_shebang] ||= '$env ruby_noexec_wrapper'
         
     | 
| 
      
 18 
     | 
    
         
            +
                RubygemsBundler::Wrapper.install
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              if Gem::Version.new(Gem::VERSION) < Gem::Version.new('2.0') then
         
     | 
| 
      
 22 
     | 
    
         
            +
                # Add custom_shebang support to rubygems
         
     | 
| 
      
 23 
     | 
    
         
            +
                require 'rubygems-bundler/rubygems_bundler_installer'
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              require 'rubygems-bundler/regenerate_binstubs_command'
         
     | 
| 
      
 27 
     | 
    
         
            +
              Gem::CommandManager.instance.register_command :regenerate_binstubs
         
     | 
| 
      
 28 
     | 
    
         
            +
            elsif ENV.key?('NOEXEC_DEBUG')
         
     | 
| 
      
 29 
     | 
    
         
            +
              msg = "Older rubygems-bundler found, loaded: #{rubygems_bundler_spec.version}, called: #{called_version}, you can uninstall it with:\n\n    "
         
     | 
| 
       8 
30 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
              error_source = __FILE__
         
     | 
| 
      
 32 
     | 
    
         
            +
              gem_source = File.expand_path("../../../..", error_source)
         
     | 
| 
      
 33 
     | 
    
         
            +
              gem_version = error_source.sub(/^.*\/rubygems-bundler-([^\/]+)\/.*$/,'\1')
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              if ENV['GEM_HOME'] or ENV['GEM_PATH']
         
     | 
| 
      
 36 
     | 
    
         
            +
                msg << "GEM_HOME=\"#{gem_source}\" " unless ENV['GEM_HOME'] == gem_source
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              msg << "gem uninstall -ax rubygems-bundler -v #{gem_version}\n\n"
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              puts msg
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
    
        data/rubygems-bundler.gemspec
    CHANGED
    
    | 
         @@ -14,9 +14,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              s.files       = `git ls-files`.split("\n")
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.test_files  = `git ls-files -- {test,spec,features}/*`.split("\n")
         
     | 
| 
       17 
     | 
    
         
            -
              s.executables =  
     | 
| 
       18 
     | 
    
         
            -
              s.extensions  = ["ext/wrapper_installer/extconf.rb"]
         
     | 
| 
      
 17 
     | 
    
         
            +
              s.executables = %w( rubygems-bundler-uninstaller )
         
     | 
| 
       19 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              s.add_development_dependency "dtf"
         
     | 
| 
       20 
20 
     | 
    
         
             
              # Do we have to depend on those two ? Can we have two simple tasks doing the same ?
         
     | 
| 
       21 
21 
     | 
    
         
             
              s.add_development_dependency "rake"
         
     | 
| 
       22 
22 
     | 
    
         
             
              s.add_development_dependency "bundler"
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            : init
         
     | 
| 
      
 2 
     | 
    
         
            +
            export BUNDLE_GEMFILE=${TMPDIR:-/tmp}/Gemfile
         
     | 
| 
      
 3 
     | 
    
         
            +
            printf "source :rubygems\n\ngem 'haml'\n" > ${BUNDLE_GEMFILE}
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            rake build
         
     | 
| 
      
 6 
     | 
    
         
            +
            rake install # match=/installed/
         
     | 
| 
      
 7 
     | 
    
         
            +
            gem install bundler # status=0
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            bundle install
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            head -n 1 $(which haml)   # match=/env ruby_noexec_wrapper/
         
     | 
| 
      
 12 
     | 
    
         
            +
            which ruby_noexec_wrapper # status=0
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            gem list                     # match=/haml/
         
     | 
| 
      
 15 
     | 
    
         
            +
            rubygems-bundler-uninstaller # match=/haml/
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            head -n 1 $(which haml)   # match!=/env ruby_noexec_wrapper/
         
     | 
| 
      
 18 
     | 
    
         
            +
            which ruby_noexec_wrapper # status=1
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            gem uninstall -x haml     # match=/Successfully uninstalled/
         
     | 
| 
      
 21 
     | 
    
         
            +
            rm -f ${BUNDLE_GEMFILE}
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            : init
         
     | 
| 
      
 2 
     | 
    
         
            +
            typeset test_dir="${TMPDIR:-/tmp}/fdkngfk"
         
     | 
| 
      
 3 
     | 
    
         
            +
            export GEM_HOME="${test_dir}/fake_gem_home"
         
     | 
| 
      
 4 
     | 
    
         
            +
            export PATH="${test_dir}/fake_gem_home/bin:$PATH"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            mkdir -p "${GEM_HOME}"
         
     | 
| 
      
 7 
     | 
    
         
            +
            printf "source :rubygems\n\ngem 'rails'\n" > "${test_dir}/Gemfile"
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            rake build
         
     | 
| 
      
 10 
     | 
    
         
            +
            rake install        # match=/installed/
         
     | 
| 
      
 11 
     | 
    
         
            +
            gem install bundler # status=0
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            : test
         
     | 
| 
      
 14 
     | 
    
         
            +
            builtin cd "${test_dir}"
         
     | 
| 
      
 15 
     | 
    
         
            +
            bundle install             # match=/Installing rails/
         
     | 
| 
      
 16 
     | 
    
         
            +
            NOEXEC=0 rails new app1
         
     | 
| 
      
 17 
     | 
    
         
            +
            [[ -f app1/Gemfile ]]      # status=0
         
     | 
| 
      
 18 
     | 
    
         
            +
            [[ -f app1/Gemfile.lock ]] # status=0
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            : cleanup
         
     | 
| 
      
 21 
     | 
    
         
            +
            rm -rf "${test_dir}"
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            : init
         
     | 
| 
      
 2 
     | 
    
         
            +
            rake build
         
     | 
| 
      
 3 
     | 
    
         
            +
            rake install # match=/installed/
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            gem install haml          # match=/1 gem installed/
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            head -n 1 $(which haml)   # match=/env ruby_noexec_wrapper/
         
     | 
| 
      
 8 
     | 
    
         
            +
            which ruby_noexec_wrapper # status=0
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            gem list                     # match=/haml/
         
     | 
| 
      
 11 
     | 
    
         
            +
            rubygems-bundler-uninstaller # match=/haml/
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            head -n 1 $(which haml)   # match!=/env ruby_noexec_wrapper/
         
     | 
| 
      
 14 
     | 
    
         
            +
            which ruby_noexec_wrapper # status=1
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            gem uninstall -x haml     # match=/Successfully uninstalled/
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rubygems-bundler
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 23
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 1
         
     | 
| 
       7 
8 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
               
     | 
| 
       10 
     | 
    
         
            -
              version: 0.9.2
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 1.0.0
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Josh Hull
         
     | 
| 
         @@ -16,12 +16,12 @@ autorequire: 
     | 
|
| 
       16 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            date: 2012-05- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2012-05-14 00:00:00 Z
         
     | 
| 
       20 
20 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
21 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 22 
     | 
    
         
            +
              name: dtf
         
     | 
| 
       22 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       23 
     | 
    
         
            -
               
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 24 
     | 
    
         
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
       25 
25 
     | 
    
         
             
                none: false
         
     | 
| 
       26 
26 
     | 
    
         
             
                requirements: 
         
     | 
| 
       27 
27 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -30,12 +30,26 @@ dependencies: 
     | 
|
| 
       30 
30 
     | 
    
         
             
                    segments: 
         
     | 
| 
       31 
31 
     | 
    
         
             
                    - 0
         
     | 
| 
       32 
32 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       33 
     | 
    
         
            -
              requirement: *id001
         
     | 
| 
       34 
33 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 34 
     | 
    
         
            +
              version_requirements: *id001
         
     | 
| 
       35 
35 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 36 
     | 
    
         
            +
              name: rake
         
     | 
| 
       36 
37 
     | 
    
         
             
              prerelease: false
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 39 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 40 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 41 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 42 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 43 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 44 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 45 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 46 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 47 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 48 
     | 
    
         
            +
              version_requirements: *id002
         
     | 
| 
      
 49 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       37 
50 
     | 
    
         
             
              name: bundler
         
     | 
| 
       38 
     | 
    
         
            -
               
     | 
| 
      
 51 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 52 
     | 
    
         
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         
     | 
| 
       39 
53 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
54 
     | 
    
         
             
                requirements: 
         
     | 
| 
       41 
55 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -44,37 +58,42 @@ dependencies: 
     | 
|
| 
       44 
58 
     | 
    
         
             
                    segments: 
         
     | 
| 
       45 
59 
     | 
    
         
             
                    - 0
         
     | 
| 
       46 
60 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       47 
     | 
    
         
            -
              requirement: *id002
         
     | 
| 
       48 
61 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 62 
     | 
    
         
            +
              version_requirements: *id003
         
     | 
| 
       49 
63 
     | 
    
         
             
            description: Stop using bundle exec. Integrate Rubygems and Bundler. Make rubygems generate bundler aware executable wrappers.
         
     | 
| 
       50 
64 
     | 
    
         
             
            email: 
         
     | 
| 
       51 
65 
     | 
    
         
             
            - joshbuddy@gmail.com
         
     | 
| 
       52 
66 
     | 
    
         
             
            - mpapis@gmail.com
         
     | 
| 
       53 
67 
     | 
    
         
             
            executables: 
         
     | 
| 
       54 
     | 
    
         
            -
            -  
     | 
| 
       55 
     | 
    
         
            -
            extensions: 
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
      
 68 
     | 
    
         
            +
            - rubygems-bundler-uninstaller
         
     | 
| 
      
 69 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       57 
71 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       58 
72 
     | 
    
         | 
| 
       59 
73 
     | 
    
         
             
            files: 
         
     | 
| 
       60 
74 
     | 
    
         
             
            - .gitignore
         
     | 
| 
      
 75 
     | 
    
         
            +
            - .noexec.yml
         
     | 
| 
       61 
76 
     | 
    
         
             
            - .ruby-version
         
     | 
| 
      
 77 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
       62 
78 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       63 
79 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       64 
80 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       65 
81 
     | 
    
         
             
            - README.md
         
     | 
| 
       66 
82 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       67 
     | 
    
         
            -
            - bin/noexec
         
     | 
| 
       68 
     | 
    
         
            -
            - bin/ruby_bundler_wrapper
         
     | 
| 
       69 
83 
     | 
    
         
             
            - bin/ruby_noexec_wrapper
         
     | 
| 
       70 
     | 
    
         
            -
            -  
     | 
| 
      
 84 
     | 
    
         
            +
            - bin/rubygems-bundler-uninstaller
         
     | 
| 
       71 
85 
     | 
    
         
             
            - lib/rubygems-bundler/fix_wrapper.rb
         
     | 
| 
       72 
86 
     | 
    
         
             
            - lib/rubygems-bundler/noexec.rb
         
     | 
| 
       73 
87 
     | 
    
         
             
            - lib/rubygems-bundler/regenerate_binstubs_command.rb
         
     | 
| 
       74 
88 
     | 
    
         
             
            - lib/rubygems-bundler/rubygems_bundler_installer.rb
         
     | 
| 
      
 89 
     | 
    
         
            +
            - lib/rubygems-bundler/uninstaller.rb
         
     | 
| 
       75 
90 
     | 
    
         
             
            - lib/rubygems-bundler/version.rb
         
     | 
| 
      
 91 
     | 
    
         
            +
            - lib/rubygems-bundler/wrapper.rb
         
     | 
| 
       76 
92 
     | 
    
         
             
            - lib/rubygems_plugin.rb
         
     | 
| 
       77 
93 
     | 
    
         
             
            - rubygems-bundler.gemspec
         
     | 
| 
      
 94 
     | 
    
         
            +
            - test/dtf/bundler_comment_test.sh
         
     | 
| 
      
 95 
     | 
    
         
            +
            - test/dtf/rails_and_gemfile_comment_test.sh
         
     | 
| 
      
 96 
     | 
    
         
            +
            - test/dtf/rubygems_comment_test.sh
         
     | 
| 
       78 
97 
     | 
    
         
             
            homepage: http://mpapis.github.com/rubygems-bundler
         
     | 
| 
       79 
98 
     | 
    
         
             
            licenses: []
         
     | 
| 
       80 
99 
     | 
    
         | 
| 
         @@ -104,9 +123,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       104 
123 
     | 
    
         
             
            requirements: []
         
     | 
| 
       105 
124 
     | 
    
         | 
| 
       106 
125 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       107 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 126 
     | 
    
         
            +
            rubygems_version: 1.8.24
         
     | 
| 
       108 
127 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       109 
128 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       110 
129 
     | 
    
         
             
            summary: Stop using bundle exec
         
     | 
| 
       111 
     | 
    
         
            -
            test_files:  
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
      
 130 
     | 
    
         
            +
            test_files: 
         
     | 
| 
      
 131 
     | 
    
         
            +
            - test/dtf/bundler_comment_test.sh
         
     | 
| 
      
 132 
     | 
    
         
            +
            - test/dtf/rails_and_gemfile_comment_test.sh
         
     | 
| 
      
 133 
     | 
    
         
            +
            - test/dtf/rubygems_comment_test.sh
         
     | 
    
        data/bin/noexec
    DELETED
    
    
    
        data/bin/ruby_bundler_wrapper
    DELETED
    
    | 
         @@ -1,23 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            original_file=ARGV[0]
         
     | 
| 
       6 
     | 
    
         
            -
            original_file_name=File.basename(original_file)
         
     | 
| 
       7 
     | 
    
         
            -
            use_bundler = (ENV['USE_BUNDLER']||'').downcase
         
     | 
| 
       8 
     | 
    
         
            -
            try_bundler = %w{try check possibly}.include? use_bundler
         
     | 
| 
       9 
     | 
    
         
            -
            force_bundler = %w{force require yes true on}.include? use_bundler
         
     | 
| 
       10 
     | 
    
         
            -
            blacklist = (ENV['BUNDLER_BLACKLIST']||'').split(/\s/) + %w{ bundle }
         
     | 
| 
       11 
     | 
    
         
            -
            blacklisted = blacklist.include? original_file_name
         
     | 
| 
       12 
     | 
    
         
            -
            $PROGRAM_NAME=original_file
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
            if !blacklisted && (try_bundler || force_bundler)
         
     | 
| 
       15 
     | 
    
         
            -
              begin
         
     | 
| 
       16 
     | 
    
         
            -
                require 'bundler/setup'
         
     | 
| 
       17 
     | 
    
         
            -
              rescue LoadError
         
     | 
| 
       18 
     | 
    
         
            -
                raise "\n\nPlease 'gem install bundler' first.\n\n" if force_bundler
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
            end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
            ARGV.shift
         
     | 
| 
       23 
     | 
    
         
            -
            eval File.read(original_file), binding, original_file
         
     | 
| 
         @@ -1,22 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Fake building extension
         
     | 
| 
       2 
     | 
    
         
            -
            File.open('Makefile', 'w') { |f| f.write "all:\n\ninstall:\n\n" }
         
     | 
| 
       3 
     | 
    
         
            -
            File.open('make', 'w') do |f|
         
     | 
| 
       4 
     | 
    
         
            -
              f.write '#!/bin/sh'
         
     | 
| 
       5 
     | 
    
         
            -
              f.chmod f.stat.mode | 0111
         
     | 
| 
       6 
     | 
    
         
            -
            end
         
     | 
| 
       7 
     | 
    
         
            -
            File.open('wrapper_installer.so', 'w') {}
         
     | 
| 
       8 
     | 
    
         
            -
            File.open('wrapper_installer.dll', 'w') {}
         
     | 
| 
       9 
     | 
    
         
            -
            File.open('nmake.bat', 'w') { |f| }
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            # Copy wrapper
         
     | 
| 
       12 
     | 
    
         
            -
            require 'fileutils'
         
     | 
| 
       13 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       14 
     | 
    
         
            -
            bindir = Gem.respond_to?(:bindir,true) ? Gem.send(:bindir) : File.join(Gem.dir, 'bin')
         
     | 
| 
       15 
     | 
    
         
            -
            FileUtils.mkdir_p(bindir, :verbose => true)
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            %w( ruby_bundler_wrapper ruby_noexec_wrapper ).each do |f|
         
     | 
| 
       18 
     | 
    
         
            -
              wrapper     = File.expand_path("../../bin/#{f}", Dir.getwd)
         
     | 
| 
       19 
     | 
    
         
            -
              destination = File.expand_path(f, bindir)
         
     | 
| 
       20 
     | 
    
         
            -
              FileUtils.cp(wrapper, destination, :verbose => true)
         
     | 
| 
       21 
     | 
    
         
            -
              File.chmod(0775, destination)
         
     | 
| 
       22 
     | 
    
         
            -
            end
         
     |