geminabox 1.3.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
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