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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 58341b99ae23a2be5f634b571d4f2d95f7c3824b
4
- data.tar.gz: d5dab4aa7155ca48994f6bac27902072f3fead85
2
+ SHA256:
3
+ metadata.gz: d4cd157b68695f62078fdfe0852c583684149a3df1bf12fe49c77f52786cf814
4
+ data.tar.gz: 81190a65a9f11776e07569922f7284a72cece2f5a39fa3a950155276b95f0ad1
5
5
  SHA512:
6
- metadata.gz: 52a5d0c2190743b85fe4f588e80a0283725ca2e00f11216747cfc2f8e200eb0621789223e859804480ffe6e03b7f282e2fcfe3768d217e33fbd200ed5cb595b8
7
- data.tar.gz: bf43c59a32f80f9ba739ed632a2529acf71f052f5842f4ce0fdc44210d6671a1fbb722c3a3bd1f98ec60c059c2a9c0238dbe1e4fe5d284c91fc8fbce6d7d85f1
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/geminabox.lockfile',
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
@@ -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)
@@ -1,3 +1,3 @@
1
1
  module Geminabox
2
- VERSION = '1.3.0' unless defined? VERSION
2
+ VERSION = '1.4.1' unless defined? VERSION
3
3
  end
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.3.0
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-03-18 00:00:00.000000000 Z
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
- rubyforge_project:
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