class Gemstash::DB::Version
Sequel model for versions table.
Public Class Methods
find_by_full_name(full_name)
click to toggle source
# File lib/gemstash/db/version.rb, line 54 def self.find_by_full_name(full_name) result = self[full_name: full_name] return result if result # Try again with the default platform, in case it is implied self[full_name: "#{full_name}-ruby"] end
find_by_spec(gem_id, spec)
click to toggle source
# File lib/gemstash/db/version.rb, line 48 def self.find_by_spec(gem_id, spec) self[rubygem_id: gem_id, number: spec.version.to_s, platform: spec.platform.to_s] end
for_spec_collection(prerelease: false, latest: false)
click to toggle source
# File lib/gemstash/db/version.rb, line 35 def self.for_spec_collection(prerelease: false, latest: false) versions = where(indexed: true, prerelease: prerelease).association_join(:rubygem) latest ? select_latest(versions) : versions end
insert_by_spec(gem_id, spec)
click to toggle source
# File lib/gemstash/db/version.rb, line 62 def self.insert_by_spec(gem_id, spec) gem_name = Gemstash::DB::Rubygem[gem_id].name new(rubygem_id: gem_id, number: spec.version.to_s, platform: spec.platform.to_s, full_name: "#{gem_name}-#{spec.version}-#{spec.platform}", storage_id: spec.full_name, indexed: true, prerelease: spec.version.prerelease?).tap(&:save).id end
select_latest(versions)
click to toggle source
# File lib/gemstash/db/version.rb, line 40 def self.select_latest(versions) versions. all. group_by {|version| [version.rubygem_id, version.platform] }. values. map {|gem_versions| gem_versions.max_by {|version| Gem::Version.new(version.number) } } end
slug(params)
click to toggle source
# File lib/gemstash/db/version.rb, line 24 def self.slug(params) version = params[:version] platform = params[:platform] if platform.to_s.empty? version else "#{version}-#{platform}" end end
Public Instance Methods
deindex()
click to toggle source
# File lib/gemstash/db/version.rb, line 11 def deindex update(indexed: false) end
reindex()
click to toggle source
# File lib/gemstash/db/version.rb, line 15 def reindex update(indexed: true) end
to_spec()
click to toggle source
This converts to the format used by /private/specs.4.8.gz
# File lib/gemstash/db/version.rb, line 20 def to_spec [rubygem.name, Gem::Version.new(number), platform] end