module Bundler::GemHelpers
Constants
- GENERICS
- GENERIC_CACHE
- PlatformMatch
Public Class Methods
generic(p)
click to toggle source
# File bundler/gem_helpers.rb, line 16 def generic(p) GENERIC_CACHE[p] ||= begin _, found = GENERICS.find do |match, _generic| p.os == match.os && (!match.cpu || p.cpu == match.cpu) end found || Gem::Platform::RUBY end end
generic_local_platform()
click to toggle source
# File bundler/gem_helpers.rb, line 26 def generic_local_platform generic(Bundler.local_platform) end
platform_specificity_match(spec_platform, user_platform)
click to toggle source
# File bundler/gem_helpers.rb, line 31 def platform_specificity_match(spec_platform, user_platform) spec_platform = Gem::Platform.new(spec_platform) return PlatformMatch::EXACT_MATCH if spec_platform == user_platform return PlatformMatch::WORST_MATCH if spec_platform.nil? || spec_platform == Gem::Platform::RUBY || user_platform == Gem::Platform::RUBY PlatformMatch.new( PlatformMatch.os_match(spec_platform, user_platform), PlatformMatch.cpu_match(spec_platform, user_platform), PlatformMatch.platform_version_match(spec_platform, user_platform) ) end
select_best_platform_match(specs, platform)
click to toggle source
# File bundler/gem_helpers.rb, line 44 def select_best_platform_match(specs, platform) specs.select {|spec| spec.match_platform(platform) }. min_by {|spec| platform_specificity_match(spec.platform, platform) } end
Private Instance Methods
generic(p)
click to toggle source
# File bundler/gem_helpers.rb, line 16 def generic(p) GENERIC_CACHE[p] ||= begin _, found = GENERICS.find do |match, _generic| p.os == match.os && (!match.cpu || p.cpu == match.cpu) end found || Gem::Platform::RUBY end end
generic_local_platform()
click to toggle source
# File bundler/gem_helpers.rb, line 26 def generic_local_platform generic(Bundler.local_platform) end
platform_specificity_match(spec_platform, user_platform)
click to toggle source
# File bundler/gem_helpers.rb, line 31 def platform_specificity_match(spec_platform, user_platform) spec_platform = Gem::Platform.new(spec_platform) return PlatformMatch::EXACT_MATCH if spec_platform == user_platform return PlatformMatch::WORST_MATCH if spec_platform.nil? || spec_platform == Gem::Platform::RUBY || user_platform == Gem::Platform::RUBY PlatformMatch.new( PlatformMatch.os_match(spec_platform, user_platform), PlatformMatch.cpu_match(spec_platform, user_platform), PlatformMatch.platform_version_match(spec_platform, user_platform) ) end
select_best_platform_match(specs, platform)
click to toggle source
# File bundler/gem_helpers.rb, line 44 def select_best_platform_match(specs, platform) specs.select {|spec| spec.match_platform(platform) }. min_by {|spec| platform_specificity_match(spec.platform, platform) } end