Class: Bundler::Dependency
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Gem::Dependency
|
|
Instance Chain:
self,
::Gem::Dependency
|
|
Inherits: |
Gem::Dependency
|
Defined in: | lib/bundler/dependency.rb |
Constant Summary
-
PLATFORM_MAP =
# File 'lib/bundler/dependency.rb', line 12{ :ruby => Gem::Platform::RUBY, :ruby_18 => Gem::Platform::RUBY, :ruby_19 => Gem::Platform::RUBY, :ruby_20 => Gem::Platform::RUBY, :ruby_21 => Gem::Platform::RUBY, :ruby_22 => Gem::Platform::RUBY, :ruby_23 => Gem::Platform::RUBY, :ruby_24 => Gem::Platform::RUBY, :ruby_25 => Gem::Platform::RUBY, :mri => Gem::Platform::RUBY, :mri_18 => Gem::Platform::RUBY, :mri_19 => Gem::Platform::RUBY, :mri_20 => Gem::Platform::RUBY, :mri_21 => Gem::Platform::RUBY, :mri_22 => Gem::Platform::RUBY, :mri_23 => Gem::Platform::RUBY, :mri_24 => Gem::Platform::RUBY, :mri_25 => Gem::Platform::RUBY, :rbx => Gem::Platform::RUBY, :truffleruby => Gem::Platform::RUBY, :jruby => Gem::Platform::JAVA, :jruby_18 => Gem::Platform::JAVA, :jruby_19 => Gem::Platform::JAVA, :mswin => Gem::Platform::MSWIN, :mswin_18 => Gem::Platform::MSWIN, :mswin_19 => Gem::Platform::MSWIN, :mswin_20 => Gem::Platform::MSWIN, :mswin_21 => Gem::Platform::MSWIN, :mswin_22 => Gem::Platform::MSWIN, :mswin_23 => Gem::Platform::MSWIN, :mswin_24 => Gem::Platform::MSWIN, :mswin_25 => Gem::Platform::MSWIN, :mswin64 => Gem::Platform::MSWIN64, :mswin64_19 => Gem::Platform::MSWIN64, :mswin64_20 => Gem::Platform::MSWIN64, :mswin64_21 => Gem::Platform::MSWIN64, :mswin64_22 => Gem::Platform::MSWIN64, :mswin64_23 => Gem::Platform::MSWIN64, :mswin64_24 => Gem::Platform::MSWIN64, :mswin64_25 => Gem::Platform::MSWIN64, :mingw => Gem::Platform::MINGW, :mingw_18 => Gem::Platform::MINGW, :mingw_19 => Gem::Platform::MINGW, :mingw_20 => Gem::Platform::MINGW, :mingw_21 => Gem::Platform::MINGW, :mingw_22 => Gem::Platform::MINGW, :mingw_23 => Gem::Platform::MINGW, :mingw_24 => Gem::Platform::MINGW, :mingw_25 => Gem::Platform::MINGW, :x64_mingw => Gem::Platform::X64_MINGW, :x64_mingw_20 => Gem::Platform::X64_MINGW, :x64_mingw_21 => Gem::Platform::X64_MINGW, :x64_mingw_22 => Gem::Platform::X64_MINGW, :x64_mingw_23 => Gem::Platform::X64_MINGW, :x64_mingw_24 => Gem::Platform::X64_MINGW, :x64_mingw_25 => Gem::Platform::X64_MINGW, }.freeze
-
REVERSE_PLATFORM_MAP =
# File 'lib/bundler/dependency.rb', line 71{}.tap do |reverse_platform_map| PLATFORM_MAP.each do |key, value| reverse_platform_map[value] ||= [] reverse_platform_map[value] << key end reverse_platform_map.each {|_, platforms| platforms.freeze } end.freeze
Class Method Summary
Instance Attribute Summary
- #autorequire readonly
- #current_env? ⇒ Boolean readonly
- #current_platform? ⇒ Boolean readonly
- #gemfile readonly
- #groups readonly
- #platforms readonly
- #should_include? ⇒ Boolean readonly
- #specific? ⇒ Boolean readonly
::Gem::Dependency
- Inherited
Instance Method Summary
-
#gem_platforms(valid_platforms)
Returns the platforms this dependency is valid for, in the same order as passed in the
valid_platforms
parameter. - #to_lock
::Gem::Dependency
- Inherited
#encode_with, #eql?, | |
#matches_spec? | Backport of performance enhancement added to RubyGems 1.4. |
#requirement, #to_lock, #to_yaml_properties |
Constructor Details
.new(name, version, options = {}, &blk) ⇒ Dependency
# File 'lib/bundler/dependency.rb', line 80
def initialize(name, version, = {}, &blk) type = ["type"] || :runtime super(name, version, type) @autorequire = nil @groups = Array( ["group"] || :default).map(&:to_sym) @source = ["source"] @platforms = Array( ["platforms"]) @env = ["env"] @should_include = .fetch("should_include", true) @gemfile = ["gemfile"] @autorequire = Array( ["require"] || []) if .key?("require") end
Instance Attribute Details
#autorequire (readonly)
[ GitHub ]# File 'lib/bundler/dependency.rb', line 9
attr_reader :autorequire
#current_env? ⇒ Boolean
(readonly)
[ GitHub ]
# 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
#current_platform? ⇒ Boolean
(readonly)
[ GitHub ]
# 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
#gemfile (readonly)
[ GitHub ]#groups (readonly)
[ GitHub ]#platforms (readonly)
[ GitHub ]
#should_include? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/bundler/dependency.rb', line 105
def should_include? @should_include && current_env? && current_platform? end
#specific? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/bundler/dependency.rb', line 133
def specific? super rescue NoMethodError requirement != ">= 0" end
Instance Method Details
#gem_platforms(valid_platforms)
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 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
#to_lock
[ GitHub ]# File 'lib/bundler/dependency.rb', line 127
def to_lock out = super out << "!" if source out << "\n" end