Class: Bundler::Dependency
- Inherits:
-
Gem::Dependency
- Object
- Gem::Dependency
- Bundler::Dependency
- Defined in:
- lib/bundler/dependency.rb
Constant Summary collapse
- PLATFORM_MAP =
rubocop:disable Naming/VariableNumber
{ :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, :ruby_26 => Gem::Platform::RUBY, :ruby_27 => Gem::Platform::RUBY, :ruby_30 => Gem::Platform::RUBY, :ruby_31 => 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, :mri_26 => Gem::Platform::RUBY, :mri_27 => Gem::Platform::RUBY, :mri_30 => Gem::Platform::RUBY, :mri_31 => 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, :mswin_26 => Gem::Platform::MSWIN, :mswin_27 => Gem::Platform::MSWIN, :mswin_30 => Gem::Platform::MSWIN, :mswin_31 => 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, :mswin64_26 => Gem::Platform::MSWIN64, :mswin64_27 => Gem::Platform::MSWIN64, :mswin64_30 => Gem::Platform::MSWIN64, :mswin64_31 => 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, :mingw_26 => Gem::Platform::MINGW, :mingw_27 => Gem::Platform::MINGW, :mingw_30 => Gem::Platform::MINGW, :mingw_31 => 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, :x64_mingw_26 => Gem::Platform::X64_MINGW, :x64_mingw_27 => Gem::Platform::X64_MINGW, :x64_mingw_30 => Gem::Platform::X64_MINGW, :x64_mingw_31 => Gem::Platform::X64_MINGW, }.freeze
Instance Attribute Summary collapse
-
#autorequire ⇒ Object
readonly
Returns the value of attribute autorequire.
-
#branch ⇒ Object
readonly
Returns the value of attribute branch.
-
#force_ruby_platform ⇒ Object
readonly
Returns the value of attribute force_ruby_platform.
-
#gemfile ⇒ Object
readonly
Returns the value of attribute gemfile.
-
#git ⇒ Object
readonly
Returns the value of attribute git.
-
#github ⇒ Object
readonly
Returns the value of attribute github.
-
#groups ⇒ Object
readonly
Returns the value of attribute groups.
-
#platforms ⇒ Object
readonly
Returns the value of attribute platforms.
-
#ref ⇒ Object
readonly
Returns the value of attribute ref.
Attributes inherited from Gem::Dependency
Instance Method Summary collapse
- #current_env? ⇒ Boolean
- #current_platform? ⇒ Boolean
- #expanded_platforms ⇒ Object
-
#gem_platforms(valid_platforms) ⇒ Object
Returns the platforms this dependency is valid for, in the same order as passed in the ‘valid_platforms` parameter.
-
#initialize(name, version, options = {}, &blk) ⇒ Dependency
constructor
rubocop:enable Naming/VariableNumber.
- #should_include? ⇒ Boolean
- #specific? ⇒ Boolean
- #to_lock ⇒ Object
Methods inherited from Gem::Dependency
#encode_with, #to_yaml_properties
Constructor Details
#initialize(name, version, options = {}, &blk) ⇒ Dependency
rubocop:enable Naming/VariableNumber
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/bundler/dependency.rb', line 97 def initialize(name, version, = {}, &blk) type = ["type"] || :runtime super(name, version, type) @autorequire = nil @groups = Array(["group"] || :default).map(&:to_sym) @source = ["source"] @git = ["git"] @github = ["github"] @branch = ["branch"] @ref = ["ref"] @platforms = Array(["platforms"]) @env = ["env"] @should_include = .fetch("should_include", true) @gemfile = ["gemfile"] @force_ruby_platform = ["force_ruby_platform"] @autorequire = Array(["require"] || []) if .key?("require") end |
Instance Attribute Details
#autorequire ⇒ Object (readonly)
Returns the value of attribute autorequire.
9 10 11 |
# File 'lib/bundler/dependency.rb', line 9 def autorequire @autorequire end |
#branch ⇒ Object (readonly)
Returns the value of attribute branch.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def branch @branch end |
#force_ruby_platform ⇒ Object (readonly)
Returns the value of attribute force_ruby_platform.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def force_ruby_platform @force_ruby_platform end |
#gemfile ⇒ Object (readonly)
Returns the value of attribute gemfile.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def gemfile @gemfile end |
#git ⇒ Object (readonly)
Returns the value of attribute git.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def git @git end |
#github ⇒ Object (readonly)
Returns the value of attribute github.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def github @github end |
#groups ⇒ Object (readonly)
Returns the value of attribute groups.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def groups @groups end |
#platforms ⇒ Object (readonly)
Returns the value of attribute platforms.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def platforms @platforms end |
#ref ⇒ Object (readonly)
Returns the value of attribute ref.
10 11 12 |
# File 'lib/bundler/dependency.rb', line 10 def ref @ref end |
Instance Method Details
#current_env? ⇒ Boolean
133 134 135 136 137 138 139 140 141 142 |
# File 'lib/bundler/dependency.rb', line 133 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
144 145 146 147 148 149 |
# File 'lib/bundler/dependency.rb', line 144 def current_platform? return true if @platforms.empty? @platforms.any? do |p| Bundler.current_ruby.send("#{p}?") end end |
#expanded_platforms ⇒ Object
125 126 127 |
# File 'lib/bundler/dependency.rb', line 125 def @expanded_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.flatten.uniq end |
#gem_platforms(valid_platforms) ⇒ Object
Returns the platforms this dependency is valid for, in the same order as passed in the ‘valid_platforms` parameter
119 120 121 122 123 |
# File 'lib/bundler/dependency.rb', line 119 def gem_platforms(valid_platforms) return valid_platforms if @platforms.empty? valid_platforms.select {|p| .include?(GemHelpers.generic(p)) } end |
#should_include? ⇒ Boolean
129 130 131 |
# File 'lib/bundler/dependency.rb', line 129 def should_include? @should_include && current_env? && current_platform? end |
#specific? ⇒ Boolean
157 158 159 160 161 |
# File 'lib/bundler/dependency.rb', line 157 def specific? super rescue NoMethodError requirement != ">= 0" end |
#to_lock ⇒ Object
151 152 153 154 155 |
# File 'lib/bundler/dependency.rb', line 151 def to_lock out = super out << "!" if source out << "\n" end |