geminabox 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/geminabox.rb +3 -3
- data/lib/geminabox/server.rb +1 -1
- data/lib/geminabox/version.rb +1 -1
- data/views/atom.erb +4 -4
- data/views/gem.erb +7 -7
- data/views/index.erb +8 -8
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d4cd157b68695f62078fdfe0852c583684149a3df1bf12fe49c77f52786cf814
|
4
|
+
data.tar.gz: 81190a65a9f11776e07569922f7284a72cece2f5a39fa3a950155276b95f0ad1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48c92617e64fd7abfbe55aee1223f2fa56ee5e6c6436e470b3b491182ccf5508ff259822204c53c32503ce9eb2be38f94e817e4cd0c6e6a3df27814006014f93
|
7
|
+
data.tar.gz: 4baad42fcfce75ff75411481cf118cde1e991471bb9f650f6869e9ccd68b8078448debcbbd5185b3d8cbe4a5b478e7485de6e8a8e7e615ea6420ed89a45fc34e
|
data/lib/geminabox.rb
CHANGED
@@ -67,7 +67,7 @@ module Geminabox
|
|
67
67
|
def settings
|
68
68
|
Server.settings
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
def call(env)
|
72
72
|
Server.call env
|
73
73
|
end
|
@@ -85,7 +85,7 @@ module Geminabox
|
|
85
85
|
rubygems_proxy_merge_strategy: ENV.fetch('RUBYGEMS_PROXY_MERGE_STRATEGY') { :local_gems_take_precedence_over_remote_gems }.to_sym,
|
86
86
|
allow_delete: true,
|
87
87
|
http_adapter: HttpClientAdapter.new,
|
88
|
-
lockfile: '/tmp
|
88
|
+
lockfile: File.join(ENV.fetch('TMPDIR', '/tmp'), 'geminabox.lockfile'),
|
89
89
|
retry_interval: 60,
|
90
90
|
allow_remote_failure: false,
|
91
91
|
ruby_gems_url: 'https://rubygems.org/',
|
@@ -93,5 +93,5 @@ module Geminabox
|
|
93
93
|
allow_upload: true,
|
94
94
|
on_gem_received: nil
|
95
95
|
)
|
96
|
-
|
96
|
+
|
97
97
|
end
|
data/lib/geminabox/server.rb
CHANGED
@@ -206,7 +206,7 @@ module Geminabox
|
|
206
206
|
def serialize_update(&block)
|
207
207
|
with_rlock(&block)
|
208
208
|
rescue ReentrantFlock::AlreadyLocked
|
209
|
-
halt 503, { 'Retry-After' => Geminabox.retry_interval }, 'Repository lock is held by another process'
|
209
|
+
halt 503, { 'Retry-After' => Geminabox.retry_interval.to_s }, 'Repository lock is held by another process'
|
210
210
|
end
|
211
211
|
|
212
212
|
def with_rlock(&block)
|
data/lib/geminabox/version.rb
CHANGED
data/views/atom.erb
CHANGED
@@ -10,12 +10,12 @@
|
|
10
10
|
<% newest_gem = versions.newest %>
|
11
11
|
<% spec = spec_for(name, newest_gem.number, newest_gem.platform) %>
|
12
12
|
<entry>
|
13
|
-
<id><%= name %></id>
|
13
|
+
<id><%= h(name) %></id>
|
14
14
|
<updated><%= spec.date.w3cdtf %></updated>
|
15
|
-
<title><%= name %> (<%= versions.size == 1 ? versions.oldest.number : "#{versions.oldest.number} - #{versions.newest.number}" %>)</title>
|
16
|
-
<author><name><%= spec.authors.join(", ") %></name></author>
|
15
|
+
<title><%= h(name) %> (<%= h(versions.size == 1 ? versions.oldest.number : "#{versions.oldest.number} - #{versions.newest.number}") %>)</title>
|
16
|
+
<author><name><%= h(spec.authors.join(", ")) %></name></author>
|
17
17
|
<% versions.each do |version| %>
|
18
|
-
<link href="<%= url "/gems/#{version.gemfile_name}.gem" %>" />
|
18
|
+
<link href="<%= h(url "/gems/#{version.gemfile_name}.gem") %>" />
|
19
19
|
<% end %>
|
20
20
|
</entry>
|
21
21
|
<% end %>
|
data/views/gem.erb
CHANGED
@@ -5,18 +5,18 @@
|
|
5
5
|
<ul class="gemlist">
|
6
6
|
<% @gem.by_name do |name, versions| %>
|
7
7
|
<li class="gem-version">
|
8
|
-
<h2><%= name %> (<%= versions.count == 1 ? versions.first.number : "#{versions.oldest.number} - #{versions.newest.number}" %>)</h2>
|
8
|
+
<h2><%= h(name) %> (<%= h(versions.count == 1 ? versions.first.number : "#{versions.oldest.number} - #{versions.newest.number}") %>)</h2>
|
9
9
|
<% versions.each.reverse_each do |version| %>
|
10
10
|
<p>
|
11
|
-
<code>gem install <%= version.name %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= version.number %>"</code>
|
11
|
+
<code>gem install <%= h(version.name) %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= h(version.number) %>"</code>
|
12
12
|
<% unless version.platform =~ /^ruby/i %>
|
13
|
-
<small class="platform"><%= version.platform %></small>
|
13
|
+
<small class="platform"><%= h(version.platform) %></small>
|
14
14
|
<% end %>
|
15
15
|
</p>
|
16
16
|
<div class="delete-form">
|
17
|
-
<a class="download" href="<%= url("/gems/#{version.gemfile_name}.gem") %>">download</a>
|
17
|
+
<a class="download" href="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">download</a>
|
18
18
|
<% if @allow_delete %>
|
19
|
-
<form method="post" action="<%= url("/gems/#{version.gemfile_name}.gem") %>">
|
19
|
+
<form method="post" action="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">
|
20
20
|
<input type="hidden" name="_method" value="DELETE" />
|
21
21
|
<button type="submit">delete</button>
|
22
22
|
</form>
|
@@ -28,10 +28,10 @@
|
|
28
28
|
<p>
|
29
29
|
<% newest_gem = versions.newest %>
|
30
30
|
<% if spec = spec_for(name, newest_gem.number, newest_gem.platform) %>
|
31
|
-
<%= spec.description %>
|
31
|
+
<%= h(spec.description) %>
|
32
32
|
<br/>
|
33
33
|
<span class="author">– <%= spec.authors.map do |author|
|
34
|
-
"<a href='#{href(spec.homepage)}'>#{author}</a>"
|
34
|
+
"<a href='#{href(spec.homepage)}'>#{h(author)}</a>"
|
35
35
|
end.join(', ') %></span>
|
36
36
|
<% end %>
|
37
37
|
</p>
|
data/views/index.erb
CHANGED
@@ -18,16 +18,16 @@
|
|
18
18
|
|
19
19
|
<% @gems.by_name do |name, versions| %>
|
20
20
|
<li <%= %{id="jump_#{name[0..0].downcase}"} if @index_gems.delete(name[0..0].downcase) %> class="gem-version">
|
21
|
-
<h2><%= name %> (<%= versions.count == 1 ? versions.first.number : "#{versions.oldest.number} - #{versions.newest.number}" %>)</h2>
|
21
|
+
<h2><%= h(name) %> (<%= h(versions.count == 1 ? versions.first.number : "#{versions.oldest.number} - #{versions.newest.number}") %>)</h2>
|
22
22
|
<% versions.each.reverse_each.first(5).each do |version| %>
|
23
23
|
<p>
|
24
|
-
<code>gem install <%= version.name %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= version.number %>"</code>
|
24
|
+
<code>gem install <%= h(version.name) %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= h(version.number) %>"</code>
|
25
25
|
<% unless version.platform =~ /^ruby/i %>
|
26
|
-
<small class="platform"><%= version.platform %></small>
|
26
|
+
<small class="platform"><%= h(version.platform) %></small>
|
27
27
|
<% end %>
|
28
28
|
</p>
|
29
|
-
<form class="delete-form" method="post" action="<%= url("/gems/#{version.gemfile_name}.gem") %>">
|
30
|
-
<a class="download" href="<%= url("/gems/#{version.gemfile_name}.gem") %>">download</a>
|
29
|
+
<form class="delete-form" method="post" action="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">
|
30
|
+
<a class="download" href="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">download</a>
|
31
31
|
<% if @allow_delete %>
|
32
32
|
<input type="hidden" name="_method" value="DELETE" />
|
33
33
|
<button type="submit">delete</button>
|
@@ -36,17 +36,17 @@
|
|
36
36
|
<% end %>
|
37
37
|
|
38
38
|
<% if versions.count > 5 %>
|
39
|
-
<a href="<%= url("/gems/#{name}") %>" id="more_link">Older versions...</a>
|
39
|
+
<a href="<%= h(url("/gems/#{name}")) %>" id="more_link">Older versions...</a>
|
40
40
|
<% end %>
|
41
41
|
|
42
42
|
<div class="details">
|
43
43
|
<p>
|
44
44
|
<% newest_gem = versions.newest %>
|
45
45
|
<% if spec = spec_for(name, newest_gem.number, newest_gem.platform) %>
|
46
|
-
<%= spec.description %>
|
46
|
+
<%= h(spec.description) %>
|
47
47
|
<br/>
|
48
48
|
<span class="author">– <%= spec.authors.map do |author|
|
49
|
-
"<a href='#{href(spec.homepage)}'>#{author}</a>"
|
49
|
+
"<a href='#{href(spec.homepage)}'>#{h(author)}</a>"
|
50
50
|
end.join(', ') %></span>
|
51
51
|
<% end %>
|
52
52
|
</p>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geminabox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Lea
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2021-
|
14
|
+
date: 2021-05-29 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: sinatra
|
@@ -97,6 +97,20 @@ dependencies:
|
|
97
97
|
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: rss
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
type: :runtime
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
100
114
|
description: A sinatra based gem hosting app, with client side gem push style functionality.
|
101
115
|
email:
|
102
116
|
- contrib@tomlea.co.uk
|
@@ -166,8 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
180
|
- !ruby/object:Gem::Version
|
167
181
|
version: '0'
|
168
182
|
requirements: []
|
169
|
-
|
170
|
-
rubygems_version: 2.6.14
|
183
|
+
rubygems_version: 3.1.2
|
171
184
|
signing_key:
|
172
185
|
specification_version: 4
|
173
186
|
summary: Really simple rubygem hosting
|