module Gemstash::LegacyRubyGemsSupport

Adds support for legacy versions of RubyGems

Public Class Methods

included(base) click to toggle source
# File lib/gemstash/gem_pusher.rb, line 97
def self.included(base)
  base.class_eval do
    alias_method :serve_without_cleanup, :serve
    remove_method :serve
    remove_method :gem
  end
end

Public Instance Methods

serve() click to toggle source
# File lib/gemstash/gem_pusher.rb, line 105
def serve
  serve_without_cleanup
ensure
  cleanup
end

Private Instance Methods

cleanup() click to toggle source
# File lib/gemstash/gem_pusher.rb, line 122
def cleanup
  return unless @tempfile

  @tempfile.close
  @tempfile.unlink
end
gem() click to toggle source
# File lib/gemstash/gem_pusher.rb, line 113
def gem
  @gem ||= begin
    @tempfile = Tempfile.new("gemstash-gem")
    @tempfile.write(@content)
    @tempfile.flush
    Gem::Package.new(@tempfile.path)
  end
end