module Polisher::GemVersions::ClassMethods
Public Instance Methods
earliest_version_matching(dep)
click to toggle source
Retrieve earliest version matching dep
# File lib/polisher/gem/versions.rb, line 59 def earliest_version_matching(dep) version = versions_matching(dep).collect { |v| ::Gem::Version.new v }.min version.nil? ? nil : version.to_s end
latest_version_in_target(name, target)
click to toggle source
Return latest version of gem in target
# File lib/polisher/gem/versions.rb, line 78 def latest_version_in_target(name, target) versions_in_target(name, target).collect { |v| ::Gem::Version.new v }.max end
latest_version_matching(dep)
click to toggle source
Retrieve latest version matching dep
# File lib/polisher/gem/versions.rb, line 53 def latest_version_matching(dep) version = versions_matching(dep).collect { |v| ::Gem::Version.new v }.max version.nil? ? nil : version.to_s end
latest_version_of(name)
click to toggle source
Retieve latest version of gem available on rubygems
# File lib/polisher/gem/versions.rb, line 41 def latest_version_of(name) remote_versions_for(name).collect { |v| ::Gem::Version.new v }.max.to_s end
local_versions_for(name, &bl)
click to toggle source
Retrieve list of the versions of the specified gem installed locally
@param [String] name name of the gem to lookup @param [Callable] bl optional block to invoke with versions retrieved @return [Array<String>] list of versions of gem installed locally
# File lib/polisher/gem/versions.rb, line 20 def local_versions_for(name, &bl) silence_warnings do @local_db ||= ::Gem::Specification.all end versions = @local_db.select { |s| s.name == name }.collect { |s| s.version } bl.call(:local_gem, name, versions) unless bl.nil? versions end
remote_versions_for(name)
click to toggle source
Retrieve all versions of gem available on rubygems
# File lib/polisher/gem/versions.rb, line 30 def remote_versions_for(name) require 'json' client.url = "https://rubygems.org/api/v1/versions/#{name}.json" client.follow_location = true client.http_get json = JSON.parse(client.body_str) json.collect { |version| version['number'] } end
version_matching_target(dep, target)
click to toggle source
Retrieve version of gem matching target
# File lib/polisher/gem/versions.rb, line 65 def version_matching_target(dep, target) version = versions_in_target(dep.name, target).select { |v| dep.match? dep.name, v } .collect { |v| ::Gem::Version.new v }.max version.nil? ? nil : version.to_s end
versions_in_target(name, target)
click to toggle source
Return versions of gem in target
# File lib/polisher/gem/versions.rb, line 72 def versions_in_target(name, target) require 'polisher/targets' Polisher.target(target).versions_for(name) end
versions_matching(dep)
click to toggle source
Retrieve versions matching dependency
# File lib/polisher/gem/versions.rb, line 46 def versions_matching(dep) remote_versions_for(dep.name).select { |v| dep.match? dep.name, v } end