Class: Gemstash::GemSource::PrivateSource
Overview
GemSource for privately stored gems.
Constant Summary
DependencyCaching::API_REQUEST_LIMIT
Constants included
from Logging
Logging::LEVELS
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#serve_dependencies, #serve_dependencies_json
Methods inherited from Base
#initialize
Methods included from Logging
#log, #log_error, logger, reset, setup_logger
Instance Attribute Details
#auth ⇒ Object
Returns the value of attribute auth.
11
12
13
|
# File 'lib/gemstash/gem_source/private_source.rb', line 11
def auth
@auth
end
|
Class Method Details
.matches?(env) ⇒ Boolean
17
18
19
20
21
22
23
|
# File 'lib/gemstash/gem_source/private_source.rb', line 17
def self.matches?(env)
rewriter = rack_env_rewriter.for(env)
return false unless rewriter.matches?
rewriter.rewrite
true
end
|
.rack_env_rewriter ⇒ Object
13
14
15
|
# File 'lib/gemstash/gem_source/private_source.rb', line 13
def self.rack_env_rewriter
@rack_env_rewriter ||= Gemstash::RackEnvRewriter.new(%r{\A/private})
end
|
Instance Method Details
#serve_actual_gem(id) ⇒ Object
68
69
70
|
# File 'lib/gemstash/gem_source/private_source.rb', line 68
def serve_actual_gem(id)
halt 403, "Not yet supported"
end
|
#serve_add_gem ⇒ Object
29
30
31
|
# File 'lib/gemstash/gem_source/private_source.rb', line 29
def serve_add_gem
protected(Gemstash::GemPusher)
end
|
#serve_add_spec_json ⇒ Object
37
38
39
|
# File 'lib/gemstash/gem_source/private_source.rb', line 37
def serve_add_spec_json
halt 403, "Not yet supported"
end
|
#serve_gem(id) ⇒ Object
72
73
74
75
76
77
78
79
80
|
# File 'lib/gemstash/gem_source/private_source.rb', line 72
def serve_gem(id)
authorization.protect(self) do
auth.check("fetch") if gemstash_env.config[:protected_fetch]
gem_full_name = id.delete_suffix(".gem")
gem = fetch_gem(gem_full_name)
content_type "application/octet-stream"
gem.content(:gem)
end
end
|
#serve_info(name) ⇒ Object
53
54
55
|
# File 'lib/gemstash/gem_source/private_source.rb', line 53
def serve_info(name)
halt 403, "Not yet supported"
end
|
#serve_latest_specs ⇒ Object
87
88
89
90
|
# File 'lib/gemstash/gem_source/private_source.rb', line 87
def serve_latest_specs
params[:latest] = true
protected(Gemstash::SpecsBuilder)
end
|
#serve_marshal(id) ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/gemstash/gem_source/private_source.rb', line 57
def serve_marshal(id)
authorization.protect(self) do
auth.check("fetch") if gemstash_env.config[:protected_fetch]
gem_full_name = id.delete_suffix(".gemspec.rz")
gem = fetch_gem(gem_full_name)
halt 404 unless gem.exist?(:spec)
content_type "application/octet-stream"
gem.content(:spec)
end
end
|
#serve_names ⇒ Object
45
46
47
|
# File 'lib/gemstash/gem_source/private_source.rb', line 45
def serve_names
halt 403, "Not yet supported"
end
|
#serve_prerelease_specs ⇒ Object
92
93
94
95
|
# File 'lib/gemstash/gem_source/private_source.rb', line 92
def serve_prerelease_specs
params[:prerelease] = true
protected(Gemstash::SpecsBuilder)
end
|
#serve_remove_spec_json ⇒ Object
41
42
43
|
# File 'lib/gemstash/gem_source/private_source.rb', line 41
def serve_remove_spec_json
halt 403, "Not yet supported"
end
|
#serve_root ⇒ Object
25
26
27
|
# File 'lib/gemstash/gem_source/private_source.rb', line 25
def serve_root
halt 403, "Not yet supported"
end
|
#serve_specs ⇒ Object
82
83
84
85
|
# File 'lib/gemstash/gem_source/private_source.rb', line 82
def serve_specs
params[:prerelease] = false
protected(Gemstash::SpecsBuilder)
end
|
#serve_versions ⇒ Object
49
50
51
|
# File 'lib/gemstash/gem_source/private_source.rb', line 49
def serve_versions
halt 404, "Not yet supported"
end
|
#serve_yank ⇒ Object
33
34
35
|
# File 'lib/gemstash/gem_source/private_source.rb', line 33
def serve_yank
protected(Gemstash::GemYanker)
end
|