Sha256: bd53978e9b6ac7dd076b72111ca3063b2c20fb05c3620bbb74339494b34e24bc

Contents?: true

Size: 1002 Bytes

Versions: 26

Compression:

Stored size: 1002 Bytes

Contents

# frozen_string_literal: true
module Bundler
  class FeatureFlag
    def self.settings_flag(flag, &default)
      unless Bundler::Settings::BOOL_KEYS.include?(flag.to_s)
        raise "Cannot use `#{flag}` as a settings feature flag since it isn't a bool key"
      end
      define_method("#{flag}?") do
        value = Bundler.settings[flag]
        value = instance_eval(&default) if value.nil? && !default.nil?
        value
      end
    end

    (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } }

    settings_flag(:allow_offline_install) { bundler_2_mode? }
    settings_flag(:only_update_to_newer_versions) { bundler_2_mode? }
    settings_flag(:plugins) { @bundler_version >= Gem::Version.new("1.14") }

    def initialize(bundler_version)
      @bundler_version = Gem::Version.create(bundler_version)
    end

    def major_version
      @bundler_version.segments.first
    end
    private :major_version

    class << self; private :settings_flag; end
  end
end

Version data entries

26 entries across 26 versions & 3 rubygems

Version Path
rubygems-update-2.6.14 bundler/lib/bundler/feature_flag.rb
rubygems-update-2.6.13 bundler/lib/bundler/feature_flag.rb
bundler-1.15.4 lib/bundler/feature_flag.rb
bundler-1.15.3 lib/bundler/feature_flag.rb
bundler-1.15.2 lib/bundler/feature_flag.rb
bundler-1.15.1 lib/bundler/feature_flag.rb
bundler-1.15.0 lib/bundler/feature_flag.rb
bundler-1.15.0.pre.4 lib/bundler/feature_flag.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/bundler-1.14.6/lib/bundler/feature_flag.rb
bundler-1.15.0.pre.3 lib/bundler/feature_flag.rb
rubygems-update-2.6.12 bundler/lib/bundler/feature_flag.rb
bundler-1.15.0.pre.2 lib/bundler/feature_flag.rb
bundler-1.15.0.pre.1 lib/bundler/feature_flag.rb
rubygems-update-2.6.11 bundler/lib/bundler/feature_flag.rb
bundler-1.14.6 lib/bundler/feature_flag.rb
bundler-1.14.5 lib/bundler/feature_flag.rb
bundler-1.14.4 lib/bundler/feature_flag.rb
bundler-1.14.3 lib/bundler/feature_flag.rb
rubygems-update-2.6.10 bundler/lib/bundler/feature_flag.rb
bundler-1.14.2 lib/bundler/feature_flag.rb