On this page
class Bundler::Dependency
Constants
- PLATFORM_MAP
- REVERSE_PLATFORM_MAP
Attributes
autorequire[R]
gemfile[R]
groups[R]
platforms[R]
Public Class Methods
# File lib/bundler/dependency.rb, line 80
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"]
@platforms = Array(options["platforms"])
@env = options["env"]
@should_include = options.fetch("should_include", true)
@gemfile = options["gemfile"]
@autorequire = Array(options["require"] || []) if options.key?("require")
end
Calls superclass method
Gem::Dependency::new
Public Instance Methods
# File lib/bundler/dependency.rb, line 109
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
# File lib/bundler/dependency.rb, line 120
def current_platform?
return true if @platforms.empty?
@platforms.any? do |p|
Bundler.current_ruby.send("#{p}?")
end
end
# File lib/bundler/dependency.rb, line 97
def gem_platforms(valid_platforms)
return valid_platforms if @platforms.empty?
@gem_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.uniq
valid_platforms & @gem_platforms
end
Returns the platforms this dependency is valid for, in the same order as passed in the `valid_platforms` parameter
# File lib/bundler/dependency.rb, line 105
def should_include?
@should_include && current_env? && current_platform?
end
# File lib/bundler/dependency.rb, line 133
def specific?
super
rescue NoMethodError
requirement != ">= 0"
end
Calls superclass method
Gem::Dependency#specific?
# File lib/bundler/dependency.rb, line 127
def to_lock
out = super
out << "!" if source
out << "\n"
end
Calls superclass method
Gem::Dependency#to_lock
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.