Class: GemInstaller::VersionSpecifier
- Inherits:
-
Object
- Object
- GemInstaller::VersionSpecifier
- Defined in:
- lib/geminstaller/version_specifier.rb
Instance Method Summary collapse
-
#specify(version_requirement, available_versions, gem_name = nil) ⇒ Object
NOTE: available_versions should be sorted in descending order (highest versions first) This method will return the first matching version.
Instance Method Details
#specify(version_requirement, available_versions, gem_name = nil) ⇒ Object
NOTE: available_versions should be sorted in descending order (highest versions first) This method will return the first matching version
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/geminstaller/version_specifier.rb', line 5 def specify(version_requirement, available_versions, gem_name = nil) rubygems_version_requirement = Gem::Version::Requirement.new [version_requirement] if available_versions.respond_to? :to_str available_versions = available_versions.split(', ') end available_versions.each do |available_version_string| available_version = Gem::Version.new(available_version_string) if rubygems_version_requirement.satisfied_by?(available_version) return available_version.to_s end end gem_name_msg = '' if gem_name gem_name_msg = "for gem '#{gem_name}' " end error_msg = "The specified version requirement '#{version_requirement}' #{gem_name_msg}is not met by any of the available versions: #{available_versions.join(', ')}." raise GemInstaller::GemInstallerError.new(error_msg) end |