class Bundler::Dependency - bundler: Ruby Standard Library Documentation

# class Bundler::Dependency

### Constants

ALL_RUBY_VERSIONS
PLATFORM_MAP
RUBY_PLATFORM_ARRAY

### Attributes

autorequire[R]
branch[R]
gemfile[R]
git[R]
github[R]
glob[R]
groups[R]
path[R]
platforms[R]
ref[R]

### Public Class Methods

new(name, version, options = {}, &blk) click to toggle source
Calls superclass method

    # File bundler/dependency.rb, line 30
    def initialize(name, version, options = {}, &blk)
      type = options["type"] || :runtime
      super(name, version, type)

      @autorequire    = nil
      @groups         = Array(options["group"] || :default).map(&:to_sym)
      @source         = options["source"]
      @path           = options["path"]
      @git            = options["git"]
      @github         = options["github"]
      @branch         = options["branch"]
      @ref            = options["ref"]
      @glob           = options["glob"]
      @platforms      = Array(options["platforms"])
      @env            = options["env"]
      @should_include = options.fetch("should_include", true)
      @gemfile        = options["gemfile"]
      @force_ruby_platform = options["force_ruby_platform"] if options.key?("force_ruby_platform")

      @autorequire = Array(options["require"] || []) if options.key?("require")
    end

### Public Instance Methods

current_env?() click to toggle source

    # File bundler/dependency.rb, line 76
    def current_env?
      return true unless @env
      if @env.is_a?(Hash)
        @env.all? do |key, val|
          ENV[key.to_s] && (val.is_a?(String) ? ENV[key.to_s] == val : ENV[key.to_s] =~ val)
        end
      else
        ENV[@env.to_s]
      end
    end

current_platform?() click to toggle source

    # File bundler/dependency.rb, line 87
    def current_platform?
      return true if @platforms.empty?
      @platforms.any? do |p|
        Bundler.current_ruby.send("#{p}?")
      end
    end

expanded_platforms() click to toggle source

    # File bundler/dependency.rb, line 64
    def expanded_platforms
      @expanded_platforms ||= @platforms.filter_map {|pl| PLATFORM_MAP[pl] }.flatten.uniq
    end

gem_platforms(valid_platforms) click to toggle source

Returns the platforms this dependency is valid for, in the same order as passed in the ‘valid_platforms` parameter

    # File bundler/dependency.rb, line 57
    def gem_platforms(valid_platforms)
      return RUBY_PLATFORM_ARRAY if force_ruby_platform
      return valid_platforms if @platforms.empty?

      valid_platforms.select {|p| expanded_platforms.include?(GemHelpers.generic(p)) }
    end

gemspec_dev_dep?() click to toggle source

    # File bundler/dependency.rb, line 72
    def gemspec_dev_dep?
      type == :development
    end

should_include?() click to toggle source

    # File bundler/dependency.rb, line 68
    def should_include?
      @should_include && current_env? && current_platform?
    end

specific?() click to toggle source
Calls superclass method

    # File bundler/dependency.rb, line 100
    def specific?
      super
    rescue NoMethodError
      requirement != ">= 0"
    end

to_lock() click to toggle source
Calls superclass method `Gem::Dependency#to_lock`

    # File bundler/dependency.rb, line 94
    def to_lock
      out = super
      out << "!" if source
      out
    end