Sha256: 869e331be3facec76624b26f50d92d3eb4441e35ccd0daa1fb6dede151bdc6c5
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
require 'stickler/repository/remote' module ::Stickler::Repository # # A Repository::Api implementation that retrieves all is data from an HTTP # based remote location. It utilizes the Modern gem server api and the gem # cutter api (push/yank/unyank). The legacy gem server api is not utilized. # # This also supports the single extra method #mirror which tells the remote # mirror repostory to mirro the given gem from an upstream server. # class RemoteMirror < Remote # Tell the remote repoistory to mirror the given gem from an upstream # repository def mirror( spec, upstream_host ) raise Stickler::Repository::Error, "gem #{spec.full_name} already exists in remote repository" if remote_gem_file_exist?( spec ) resp = resource_request( mirror_resource( spec, upstream_host ) ) end private def mirror_uri( spec, upstream_host ) [ uri.join( upstream_host ), spec.name, spec.version.to_s, spec.platform].join("/") end def mirror_resource( spec, upstream_host ) muri = mirror_uri( spec, upstream_host ) params = { :method => :post, :expects => [200, 201] } Excon.new( muri.to_s, params ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stickler-2.2.4 | lib/stickler/repository/remote_mirror.rb |
stickler-2.2.3 | lib/stickler/repository/remote_mirror.rb |