geminabox 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of geminabox might be problematic. Click here for more details.
- data/lib/geminabox.rb +3 -15
- data/lib/rubygems/commands/inabox_command.rb +1 -1
- data/public/master.css +20 -6
- data/views/index.erb +10 -9
- data/views/layout.erb +5 -5
- metadata +5 -5
data/lib/geminabox.rb
CHANGED
@@ -49,13 +49,13 @@ class Geminabox < Sinatra::Base
|
|
49
49
|
|
50
50
|
get '/reindex' do
|
51
51
|
reindex
|
52
|
-
redirect "/"
|
52
|
+
redirect url("/")
|
53
53
|
end
|
54
54
|
|
55
55
|
delete '/gems/*.gem' do
|
56
56
|
File.delete file_path if File.exists? file_path
|
57
57
|
reindex
|
58
|
-
redirect "/"
|
58
|
+
redirect url("/")
|
59
59
|
end
|
60
60
|
|
61
61
|
post '/upload' do
|
@@ -89,7 +89,7 @@ class Geminabox < Sinatra::Base
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
reindex
|
92
|
-
redirect "/"
|
92
|
+
redirect url("/")
|
93
93
|
end
|
94
94
|
|
95
95
|
private
|
@@ -135,17 +135,5 @@ HTML
|
|
135
135
|
spec_file = File.join(options.data, "quick", "Marshal.#{Gem.marshal_version}", "#{gem_name}-#{version}.gemspec.rz")
|
136
136
|
Marshal.load(Gem.inflate(File.read(spec_file))) if File.exists? spec_file
|
137
137
|
end
|
138
|
-
|
139
|
-
def url_for(path)
|
140
|
-
url = request.scheme + "://"
|
141
|
-
url << request.host
|
142
|
-
|
143
|
-
if request.scheme == "https" && request.port != 443 ||
|
144
|
-
request.scheme == "http" && request.port != 80
|
145
|
-
url << ":#{request.port}"
|
146
|
-
end
|
147
|
-
|
148
|
-
url << path
|
149
|
-
end
|
150
138
|
end
|
151
139
|
end
|
@@ -63,7 +63,7 @@ class Gem::Commands::InaboxCommand < Gem::Command
|
|
63
63
|
request_body, request_headers = Multipart::MultipartPost.new.prepare_query("file" => file)
|
64
64
|
|
65
65
|
proxy.start(url.host, url.port) {|con|
|
66
|
-
req = Net::HTTP::Post.new('/upload', request_headers)
|
66
|
+
req = Net::HTTP::Post.new(url.path+'/upload', request_headers)
|
67
67
|
req.basic_auth(url.user, url.password) if url.user
|
68
68
|
handle_response(con.request(req, request_body))
|
69
69
|
}
|
data/public/master.css
CHANGED
@@ -83,11 +83,12 @@ ul.gemlist li strong {
|
|
83
83
|
|
84
84
|
ul.gemlist li .delete-form {
|
85
85
|
position: relative;
|
86
|
-
overflow: hidden;
|
87
86
|
margin: 2px 0;
|
88
87
|
}
|
89
|
-
ul.gemlist li
|
90
|
-
|
88
|
+
ul.gemlist li button,
|
89
|
+
ul.gemlist li a.download
|
90
|
+
{
|
91
|
+
display: none;
|
91
92
|
position: absolute;
|
92
93
|
right: 0;
|
93
94
|
bottom: 0;
|
@@ -96,9 +97,22 @@ ul.gemlist li .delete-form button {
|
|
96
97
|
border: 0;
|
97
98
|
color: #fff;
|
98
99
|
margin: 0;
|
100
|
+
font-size: 8pt;
|
101
|
+
padding: 3px;
|
102
|
+
cursor: pointer;
|
103
|
+
}
|
104
|
+
|
105
|
+
ul.gemlist li a.download {
|
106
|
+
background: #5c5;
|
107
|
+
border-radius: .5em 0 0 .5em; -moz-border-radius: .5em 0 0 .5em; -webkit-border-radius: 0 .5em .5em 0;
|
108
|
+
left: 0;
|
109
|
+
right: auto;
|
99
110
|
}
|
100
|
-
|
101
|
-
|
111
|
+
|
112
|
+
ul.gemlist li:hover button,
|
113
|
+
ul.gemlist li:hover a.download {
|
114
|
+
margin: 0;
|
115
|
+
display: block;
|
102
116
|
}
|
103
117
|
|
104
118
|
.details {
|
@@ -118,7 +132,7 @@ ul.gemlist li .delete-form:hover button {
|
|
118
132
|
}
|
119
133
|
|
120
134
|
|
121
|
-
.gem-version
|
135
|
+
.gem-version p {
|
122
136
|
margin: 0;
|
123
137
|
padding: 1px 0;
|
124
138
|
border: 0;
|
data/views/index.erb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if @gems.any? %>
|
2
|
-
<a href="upload">Upload Another Gem</a>
|
2
|
+
<a href="<%= url("/upload") %>">Upload Another Gem</a>
|
3
3
|
|
4
4
|
<div id="alpha_index"><%= ("a".."z").map{|i| @index_gems.include?(i) ? "<a href='#jump_#{i}'>#{i}</a>" : i }.join(" - ") %></div>
|
5
5
|
|
@@ -9,13 +9,14 @@
|
|
9
9
|
<li <%= %{id="jump_#{name[0..0]}"} if @index_gems.delete(name[0..0]) %> class="gem-version">
|
10
10
|
<h2><%= name %> (<%= versions.count == 1 ? versions.first.number : "#{versions.first.number} - #{versions.first.number}" %>)</h2>
|
11
11
|
<% versions.each do |version| %>
|
12
|
-
<
|
13
|
-
<
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
<p>
|
13
|
+
<code>gem install <%= version.name %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= version.number %>"</code>
|
14
|
+
<% unless version.platform =~ /^ruby/i %>
|
15
|
+
<small class="platform"><%= version.platform %></small>
|
16
|
+
<% end %>
|
17
|
+
</p>
|
18
|
+
<form class="delete-form" method="post" action="<%= url("/gems/#{version.gemfile_name}.gem") %>">
|
19
|
+
<a class="download" href="<%= url("/gems/#{version.gemfile_name}.gem") %>">download</a>
|
19
20
|
<input type="hidden" name="_method" value="DELETE" />
|
20
21
|
<button type="submit">delete</button>
|
21
22
|
</form>
|
@@ -38,4 +39,4 @@
|
|
38
39
|
</ul>
|
39
40
|
<% end %>
|
40
41
|
|
41
|
-
<a href="upload">Upload Another Gem</a>
|
42
|
+
<a href="<%= url("/upload") %>">Upload Another Gem</a>
|
data/views/layout.erb
CHANGED
@@ -2,19 +2,19 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Gem in a Box</title>
|
5
|
-
<link rel="stylesheet" href="/master.css" type="text/css" media="screen">
|
6
|
-
<link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom Feed">
|
5
|
+
<link rel="stylesheet" href="<%= url "/master.css" %>" type="text/css" media="screen">
|
6
|
+
<link href="<%= url "/atom.xml" %>" type="application/atom+xml" rel="alternate" title="Atom Feed">
|
7
7
|
</head>
|
8
8
|
<body>
|
9
9
|
<div id="content">
|
10
10
|
<h1>Gem in a Box</h1>
|
11
11
|
<p>
|
12
|
-
<pre><code>gem sources -a <%=
|
12
|
+
<pre><code>gem sources -a <%= url "/" %></code></pre>
|
13
13
|
<pre><code>gem install geminabox<br />gem inabox [gemfile]</code></pre>
|
14
14
|
</p>
|
15
15
|
<%= yield %>
|
16
16
|
</div>
|
17
|
-
<script type="text/javascript" src="/jquery.js"></script>
|
18
|
-
<script type="text/javascript" src="/master.js"></script>
|
17
|
+
<script type="text/javascript" src="<%= url "/jquery.js" %>"></script>
|
18
|
+
<script type="text/javascript" src="<%= url "/master.js" %>"></script>
|
19
19
|
</body>
|
20
20
|
</html>
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geminabox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tom Lea
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-12-
|
18
|
+
date: 2011-12-14 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: sinatra
|