Class: Gemstash::GemSource::UpstreamSource

Inherits:
RedirectSource show all
Includes:
Env::Helper, DependencyCaching
Defined in:
lib/gemstash/gem_source/upstream_source.rb

Overview

GemSource for gems in an upstream server.

Direct Known Subclasses

RubygemsSource

Constant Summary

Constants included from DependencyCaching

DependencyCaching::API_REQUEST_LIMIT

Constants included from Logging

Logging::LEVELS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DependencyCaching

#serve_dependencies, #serve_dependencies_json

Methods inherited from RedirectSource

capture_user_agent, matches?, #serve_actual_gem, #serve_add_gem, #serve_add_spec_json, #serve_dependencies, #serve_dependencies_json, #serve_info, #serve_names, #serve_remove_spec_json, #serve_root, #serve_versions, #serve_yank

Methods inherited from Base

#initialize

Methods included from Logging

#log, #log_error, logger, reset, setup_logger

Constructor Details

This class inherits a constructor from Gemstash::GemSource::Base

Class Method Details

.rack_env_rewriterObject



119
120
121
# File 'lib/gemstash/gem_source/upstream_source.rb', line 119

def self.rack_env_rewriter
  @rack_env_rewriter ||= Gemstash::RackEnvRewriter.new(%r{\A/upstream/(?<upstream_url>[^/]+)})
end

Instance Method Details

#serve_gem(id) ⇒ Object



127
128
129
# File 'lib/gemstash/gem_source/upstream_source.rb', line 127

def serve_gem(id)
  serve_cached(id, :gem)
end

#serve_latest_specsObject



131
132
133
134
# File 'lib/gemstash/gem_source/upstream_source.rb', line 131

def serve_latest_specs
  http_client = http_client_for(upstream)
  http_client.get("latest_specs.4.8.gz")
end

#serve_marshal(id) ⇒ Object



123
124
125
# File 'lib/gemstash/gem_source/upstream_source.rb', line 123

def serve_marshal(id)
  serve_cached(id, :spec)
end

#serve_prerelease_specsObject



136
137
138
139
# File 'lib/gemstash/gem_source/upstream_source.rb', line 136

def serve_prerelease_specs
  http_client = http_client_for(upstream)
  http_client.get("prerelease_specs.4.8.gz")
end

#serve_specsObject



141
142
143
144
# File 'lib/gemstash/gem_source/upstream_source.rb', line 141

def serve_specs
  http_client = http_client_for(upstream)
  http_client.get("specs.4.8.gz")
end