class Gemstash::DB::CachedRubygem

Sequel model for cached_rubygems table.

Public Class Methods

store(upstream, gem_name, resource_type) click to toggle source
# File lib/gemstash/db/cached_rubygem.rb, line 9
def self.store(upstream, gem_name, resource_type)
  db.transaction do
    upstream_id = Gemstash::DB::Upstream.find_or_insert(upstream)
    record = self[upstream_id: upstream_id, name: gem_name.name, resource_type: resource_type.to_s]
    return record.id if record

    new(upstream_id: upstream_id, name: gem_name.name, resource_type: resource_type.to_s).tap(&:save).id
  end
end