Sha256: 61c2567a779182539467d526f0abde406116c3e3cd50fb3ca8e928219d8616ac

Contents?: true

Size: 991 Bytes

Versions: 4

Compression:

Stored size: 991 Bytes

Contents

require 'postit/parser'

module BundlerVendoredPostIt
  class Environment
    def initialize(argv)
      @argv = argv
    end

    def env_var_version
      ENV['BUNDLER_VERSION']
    end

    def cli_arg_version
      return unless str = @argv.first
      str = str.dup.force_encoding('BINARY') if str.respond_to?(:force_encoding)
      if Gem::Version.correct?(str)
        @argv.shift
        str
      end
    end

    def gemfile
      ENV['BUNDLE_GEMFILE'] || 'Gemfile'
    end

    def lockfile
      File.expand_path case File.basename(gemfile)
                       when 'gems.rb' then gemfile.sub(/\.rb$/, gemfile)
                       else "#{gemfile}.lock"
                       end
    end

    def lockfile_version
      BundlerVendoredPostIt::Parser.new(lockfile).parse
    end

    def bundler_version
      @bundler_version ||= begin
        env_var_version || cli_arg_version ||
          lockfile_version || "#{Gem::Requirement.default}.a"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
rubygems-update-2.6.7 bundler/lib/bundler/vendor/postit/lib/postit/environment.rb
rubygems-update-2.6.6 bundler/lib/bundler/vendor/postit/lib/postit/environment.rb
rubygems-update-2.6.5 bundler/lib/bundler/vendor/postit/lib/postit/environment.rb
bundler-1.13.0.pre.1 lib/bundler/vendor/postit/lib/postit/environment.rb