rubygems-bundler 1.3.4 → 1.4.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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +5 -0
- data/lib/rubygems-bundler/noexec.rb +37 -29
- data/lib/rubygems-bundler/version.rb +1 -1
- data/rubygems-bundler.gemspec +1 -1
- data/test/dtf/bundler_comment_test.sh +2 -2
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- 
         | 
| 2 | 
            -
            SHA512: 
         | 
| 3 | 
            -
              metadata.gz: a54f0dfa7d84cec266825776da8b2d3cc8acb8992da8aff941755c43471fb558a57b43d99323ae1d416095458fe68bd3dd46ee2182c09e3659dd3ef913d7d924
         | 
| 4 | 
            -
              data.tar.gz: df2ba5391f44296308697923b6bf209f055b915dc9fd7a839c8f13a289d96e5d1edcfca9a79d70a19f2f07c1a4617acf4e44d31bf9467c4bcf507fc0374e6a02
         | 
| 5 2 | 
             
            SHA1: 
         | 
| 6 | 
            -
               | 
| 7 | 
            -
               | 
| 3 | 
            +
              data.tar.gz: e2924818f0358170cdbc6b2161193baf44e36c8f
         | 
| 4 | 
            +
              metadata.gz: ed28cbeb5191d6e07851576bee9540ef6d1aa440
         | 
| 5 | 
            +
            SHA512: 
         | 
| 6 | 
            +
              data.tar.gz: ee9c2c15fb987ea87265835216f3317175f1d684e807dd49e7d5397560541f0484dee2c52ca186a54af111ba2698599070d56366fd8649369cad64e67d789797
         | 
| 7 | 
            +
              metadata.gz: 1e3fc6e5079a460e9ddef58c661a70326972a178642efd811640e7067e1d59c0069cbc021ab4c1084c4390eeb6d18f41ace1ae1a23fa960d940785a4ef3dd4d0
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            require "rubygems"
         | 
| 2 2 |  | 
| 3 3 | 
             
            class Noexec
         | 
| 4 | 
            -
              DEBUG   = ENV | 
| 4 | 
            +
              DEBUG   = ENV['NOEXEC_DEBUG']
         | 
| 5 5 | 
             
              CURRENT = Dir.pwd
         | 
| 6 6 |  | 
| 7 | 
            -
              attr_reader :bin
         | 
| 7 | 
            +
              attr_reader :bin, :gemfile, :rubygems_specs
         | 
| 8 8 |  | 
| 9 9 | 
             
              def initialize(bin)
         | 
| 10 10 | 
             
                log "Bin used: #{bin}"
         | 
| @@ -17,14 +17,20 @@ class Noexec | |
| 17 17 | 
             
                puts msg if Noexec::DEBUG
         | 
| 18 18 | 
             
              end
         | 
| 19 19 |  | 
| 20 | 
            -
              def  | 
| 20 | 
            +
              def log2(msg)
         | 
| 21 | 
            +
                puts msg if Noexec::DEBUG == "2"
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              def candidate?
         | 
| 25 | 
            +
                log "Examining #{gemfile}"
         | 
| 21 26 | 
             
                config_file = File.expand_path('../.noexec.yaml', gemfile)
         | 
| 22 | 
            -
                log "Considering #{config_file.inspect}"
         | 
| 23 27 | 
             
                if File.exist?(config_file)
         | 
| 24 28 | 
             
                  log "Using config file at #{config_file}"
         | 
| 25 29 | 
             
                  require "yaml"
         | 
| 26 30 | 
             
                  config = YAML::load_file(config_file)
         | 
| 27 | 
            -
                   | 
| 31 | 
            +
                  unless config['include'].nil? ^ config['exclude'].nil?
         | 
| 32 | 
            +
                    raise "You cannot have both an include and exclude section in your #{config_file.inspect}"
         | 
| 33 | 
            +
                  end
         | 
| 28 34 | 
             
                  if config['include'] && config['include'].include?(bin)
         | 
| 29 35 | 
             
                    log "Binary included by config"
         | 
| 30 36 | 
             
                    return true
         | 
| @@ -34,22 +40,24 @@ class Noexec | |
| 34 40 | 
             
                  end
         | 
| 35 41 | 
             
                  log "Config based matching didn't find it, resorting to Gemfile lookup"
         | 
| 36 42 | 
             
                end
         | 
| 37 | 
            -
                return true if %w(ruby irb).include?(bin)
         | 
| 38 43 | 
             
                ENV['BUNDLE_GEMFILE'] = gemfile
         | 
| 39 | 
            -
                Bundler. | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                     | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                     | 
| 44 | 
            +
                runtime = Bundler.load
         | 
| 45 | 
            +
                log2 "runtime specs: #{runtime.specs.map{|g| "#{g.name}-#{g.version}"}*" "}"
         | 
| 46 | 
            +
                if rubygems_spec # that single gem
         | 
| 47 | 
            +
                  missing_spec = runtime.
         | 
| 48 | 
            +
                    instance_variable_get(:@definition).
         | 
| 49 | 
            +
                    missing_specs.
         | 
| 50 | 
            +
                    detect{|spec| spec.name == rubygems_spec.name}
         | 
| 51 | 
            +
                  if missing_spec
         | 
| 52 | 
            +
                    puts "\e[31mCould not find proper version of #{missing_spec.to_s} in any of the sources\e[0m"
         | 
| 53 | 
            +
                    puts "\e[33mRun `bundle install` to install missing gems.\e[0m"
         | 
| 54 | 
            +
                    exit Bundler::GemNotFound.new.status_code
         | 
| 50 55 | 
             
                  end
         | 
| 51 | 
            -
                  return true if runtime.specs.detect{ |spec| spec.executables.include?(bin) }
         | 
| 52 56 | 
             
                end
         | 
| 57 | 
            +
                if runtime.specs.detect{ |spec| spec.executables.include?(bin) }
         | 
| 58 | 
            +
                  return true
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
                Bundler.unload!(rubygems_specs)
         | 
| 53 61 | 
             
                false
         | 
| 54 62 | 
             
              rescue Bundler::BundlerError, Bundler::GemfileError => e
         | 
| 55 63 | 
             
                warn "Ignoring candidate #{gemfile}:\n#{e}" if Noexec::DEBUG
         | 
| @@ -57,27 +65,26 @@ class Noexec | |
| 57 65 | 
             
              end
         | 
| 58 66 |  | 
| 59 67 | 
             
              def rubygems_spec
         | 
| 60 | 
            -
                @rubygems_spec ||=  | 
| 68 | 
            +
                @rubygems_spec ||= rubygems_specs.detect{|spec| spec.executables.include?(bin) }
         | 
| 61 69 | 
             
              end
         | 
| 62 70 |  | 
| 63 71 | 
             
              def setup
         | 
| 64 72 | 
             
                puts "Noexec - starting check" if Noexec::DEBUG
         | 
| 65 73 | 
             
                require "bundler-unload"
         | 
| 66 74 |  | 
| 67 | 
            -
                 | 
| 75 | 
            +
                @rubygems_specs = Bundler.rubygems.plain_specs # save it for unloading and checking binary
         | 
| 76 | 
            +
                log2 "rubygems_specs: #{rubygems_specs.map{|g| "#{g.name}-#{g.version}"}*" "}"
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                @gemfile = ENV['BUNDLE_GEMFILE'] || File.join(Noexec::CURRENT, "Gemfile")
         | 
| 79 | 
            +
             | 
| 68 80 | 
             
                while true
         | 
| 69 | 
            -
                  if File.file?(gemfile)
         | 
| 70 | 
            -
                    log " | 
| 71 | 
            -
                     | 
| 72 | 
            -
                      log "Using #{gemfile}"
         | 
| 73 | 
            -
                      ENV['BUNDLE_GEMFILE'] = gemfile
         | 
| 74 | 
            -
                      Bundler.setup
         | 
| 75 | 
            -
                      return
         | 
| 76 | 
            -
                    end
         | 
| 81 | 
            +
                  if File.file?(gemfile) && candidate?
         | 
| 82 | 
            +
                    log "Keeping #{gemfile} loaded"
         | 
| 83 | 
            +
                    return
         | 
| 77 84 | 
             
                  end
         | 
| 78 85 | 
             
                  new_gemfile = File.expand_path("../../Gemfile", gemfile)
         | 
| 79 86 | 
             
                  break if new_gemfile == gemfile
         | 
| 80 | 
            -
                  gemfile = new_gemfile
         | 
| 87 | 
            +
                  @gemfile = new_gemfile
         | 
| 81 88 | 
             
                end
         | 
| 82 89 | 
             
                log "No valid Gemfile found, moving on"
         | 
| 83 90 | 
             
              rescue LoadError
         | 
| @@ -101,6 +108,7 @@ class Noexec | |
| 101 108 |  | 
| 102 109 | 
             
                else
         | 
| 103 110 | 
             
                  setup
         | 
| 111 | 
            +
             | 
| 104 112 | 
             
                end
         | 
| 105 113 | 
             
              end
         | 
| 106 114 |  | 
    
        data/rubygems-bundler.gemspec
    CHANGED
    
    | @@ -17,7 +17,7 @@ Gem::Specification.new do |s| | |
| 17 17 | 
             
              s.test_files  = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 18 18 |  | 
| 19 19 | 
             
              s.add_dependency "bundler-unload", ">=1.0.2"
         | 
| 20 | 
            -
              s.add_dependency "executable-hooks", ">=1.2. | 
| 20 | 
            +
              s.add_dependency "executable-hooks", ">=1.2.5"
         | 
| 21 21 | 
             
              s.add_development_dependency "tf"
         | 
| 22 22 | 
             
              #s.add_development_dependency "smf-gem"
         | 
| 23 23 | 
             
            end
         | 
| @@ -13,9 +13,9 @@ bundle install # status=0 | |
| 13 13 |  | 
| 14 14 | 
             
            : exclusion
         | 
| 15 15 | 
             
            head -n 1 "$(which haml)"     # match=/env ruby_executable_hooks/
         | 
| 16 | 
            -
            haml --version # match=/ | 
| 16 | 
            +
            haml --version # match=/Keeping .*/rubygems-bunelr_bundler-test/Gemfile loaded/; match!=/Binary excluded by config/
         | 
| 17 17 | 
             
            printf "exclude:\n - haml\n" > ${BUNDLE_GEMFILE%/*}/.noexec.yaml
         | 
| 18 | 
            -
            haml --version # match!=/ | 
| 18 | 
            +
            haml --version # match!=/Keeping .*/rubygems-bunelr_bundler-test/Gemfile loaded/; match=/Binary excluded by config/
         | 
| 19 19 |  | 
| 20 20 | 
             
            : generated/removed
         | 
| 21 21 | 
             
            head -n 1 "$(which haml)"    # match=/env ruby_executable_hooks/
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: rubygems-bundler
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.4.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Josh Hull
         | 
| @@ -10,7 +10,7 @@ autorequire: | |
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 12 |  | 
| 13 | 
            -
            date: 2013-10- | 
| 13 | 
            +
            date: 2013-10-20 00:00:00 Z
         | 
| 14 14 | 
             
            dependencies: 
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 16 16 | 
             
              name: bundler-unload
         | 
| @@ -29,7 +29,7 @@ dependencies: | |
| 29 29 | 
             
                requirements: 
         | 
| 30 30 | 
             
                - - ">="
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 32 | 
            -
                    version: 1.2. | 
| 32 | 
            +
                    version: 1.2.5
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              version_requirements: *id002
         | 
| 35 35 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 89 89 | 
             
            requirements: []
         | 
| 90 90 |  | 
| 91 91 | 
             
            rubyforge_project: 
         | 
| 92 | 
            -
            rubygems_version: 2.0. | 
| 92 | 
            +
            rubygems_version: 2.0.12
         | 
| 93 93 | 
             
            signing_key: 
         | 
| 94 94 | 
             
            specification_version: 4
         | 
| 95 95 | 
             
            summary: Stop using bundle exec
         |