Class: Bundler::Dependency
- Inherits:
-
Gem::Dependency
- Object
- Gem::Dependency
- Bundler::Dependency
- Defined in:
- lib/bundler/dependency.rb
Constant Summary collapse
- PLATFORM_MAP =
{ :ruby => Gem::Platform::RUBY, :ruby_18 => Gem::Platform::RUBY, :ruby_19 => Gem::Platform::RUBY, :mri => Gem::Platform::RUBY, :mri_18 => Gem::Platform::RUBY, :mri_19 => Gem::Platform::RUBY, :jruby => Gem::Platform::JAVA, :mswin => Gem::Platform::MSWIN, :mingw => Gem::Platform::MINGW, :mingw_18 => Gem::Platform::MINGW, :mingw_19 => Gem::Platform::MINGW }.freeze
Instance Attribute Summary collapse
-
#autorequire ⇒ Object
readonly
Returns the value of attribute autorequire.
-
#groups ⇒ Object
readonly
Returns the value of attribute groups.
-
#platforms ⇒ Object
readonly
Returns the value of attribute platforms.
Attributes inherited from Gem::Dependency
Instance Method Summary collapse
- #current_env? ⇒ Boolean
- #current_platform? ⇒ Boolean
- #gem_platforms(valid_platforms) ⇒ Object
-
#initialize(name, version, options = {}, &blk) ⇒ Dependency
constructor
A new instance of Dependency.
- #should_include? ⇒ Boolean
- #to_lock ⇒ Object
Methods inherited from Gem::Dependency
#encode_with, #matches_spec?, #required_by, #requirement, #to_yaml_properties
Constructor Details
#initialize(name, version, options = {}, &blk) ⇒ Dependency
Returns a new instance of Dependency.
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/bundler/dependency.rb', line 25 def initialize(name, version, = {}, &blk) super(name, version) @autorequire = nil @groups = Array(["group"] || :default).map { |g| g.to_sym } @source = ["source"] @platforms = Array(["platforms"]) @env = ["env"] if .key?('require') @autorequire = Array(['require'] || []) end end |
Instance Attribute Details
#autorequire ⇒ Object (readonly)
Returns the value of attribute autorequire.
7 8 9 |
# File 'lib/bundler/dependency.rb', line 7 def autorequire @autorequire end |
#groups ⇒ Object (readonly)
Returns the value of attribute groups.
8 9 10 |
# File 'lib/bundler/dependency.rb', line 8 def groups @groups end |
#platforms ⇒ Object (readonly)
Returns the value of attribute platforms.
9 10 11 |
# File 'lib/bundler/dependency.rb', line 9 def platforms @platforms end |
Instance Method Details
#current_env? ⇒ Boolean
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/bundler/dependency.rb', line 55 def current_env? return true unless @env if Hash === @env @env.all? do |key, val| ENV[key.to_s] && (String === val ? ENV[key.to_s] == val : ENV[key.to_s] =~ val) end else ENV[@env.to_s] end end |
#current_platform? ⇒ Boolean
66 67 68 69 |
# File 'lib/bundler/dependency.rb', line 66 def current_platform? return true if @platforms.empty? @platforms.any? { |p| send("#{p}?") } end |
#gem_platforms(valid_platforms) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/bundler/dependency.rb', line 39 def gem_platforms(valid_platforms) return valid_platforms if @platforms.empty? platforms = [] @platforms.each do |p| platform = PLATFORM_MAP[p] next unless valid_platforms.include?(platform) platforms |= [platform] end platforms end |
#should_include? ⇒ Boolean
51 52 53 |
# File 'lib/bundler/dependency.rb', line 51 def should_include? current_env? && current_platform? end |
#to_lock ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/bundler/dependency.rb', line 71 def to_lock out = " #{name}" unless requirement == Gem::Requirement.default reqs = requirement.requirements.map{|o,v| "#{o} #{v}" } out << " (#{reqs.join(', ')})" end out << '!' if source out << "\n" end |