rewritten 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,14 +1,19 @@
1
- <div style="float:left">
1
+ <div style="">
2
2
  <% if @from && @to %>
3
- <h2><%= @from %> -> <%= @to %> </h2>
3
+
4
+ <h2 style="width: 90%; overflow: scroll"><%= @from %> -> <%= @to %> </h2>
5
+
6
+ <div style="float :left">
7
+
4
8
  <p>Are you sure you want to delete above translation?</p>
5
9
  <form action='<%= u("/delete")%>' method="post" style="margin-top: 10px ">
6
10
  <input type="hidden" name="_method" value="delete">
7
11
  <input type="hidden" name="from" value="<%= @from %>">
8
- <input type="hidden" name="to" value="<%= @to %>">
12
+ <input type="hidden" name="to" value="<%= @to %>">
9
13
  <input type="submit" value="Yes, Delete It!">
10
- <a href='<%= u("/to?to=#{@to}") %>'>Cancel</a>
14
+ <a href='<%= u("/to?to=#{escape(@to)}") %>'>Cancel</a>
11
15
  </form>
16
+ </div>
12
17
  <% else %>
13
18
  <p>Translation not found.</p>
14
19
  <% end %>
@@ -1,13 +1,14 @@
1
1
 
2
2
 
3
- <h1>Create New Mapping</h1>
3
+ <h1>New Translation</h1>
4
4
 
5
5
 
6
6
  <div style="float: left; margin-top: 10px">
7
- <form method="POST" action="<%= u "/translations" %>">
8
- <label>From:</label><br/> <input type="text" name="from" /> <br />
9
- <label>To:</label><br/> <input type="text" name="to" value="<%= params[:to] %>" /> <br />
7
+ <form method="POST" action="<%= u "/translations" %>" >
8
+ <label>From (what the user sees) </label><br/> <input type="text" name="from" size="80"/> <br />
9
+ <label>To (what your app sees) </label><br/> <input type="text" name="to" size="80" value="<%= params[:to] %>" /> <br />
10
10
  <input type="submit" value="Create" />
11
+ <a href='<%= u("/translations") %>'>Cancel</a>
11
12
  </form>
12
13
  </div>
13
14
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  <h1 class='wi'><%= params[:to] %> (App URL)</h1>
3
3
 
4
- <a href="<%= u(%|/new?to=#{params[:to]}|) %>"> + add another translation </a>
4
+ <a href="<%= u(%|/new?to=#{Rack::Utils.escape(params[:to])}|) %>"> + add another translation </a>
5
5
 
6
6
  <table class='queues'>
7
7
  <tr>
@@ -12,7 +12,7 @@
12
12
  <% for translation in Rewritten.list_range("to:#{params[:to]}", 0, 100) %>
13
13
  <tr>
14
14
  <td class=''><a href="<%= translation %>" target="new"><%= translation %></td>
15
- <td class=''><a href="<%= u("/delete?from=#{translation}&to=#{params[:to]}") %>">Delete</a></td>
15
+ <td class=''><a href="<%= u("/delete?from=#{translation}&to=#{escape(params[:to])}") %>">Delete</a></td>
16
16
  </tr>
17
17
  <% end %>
18
18
 
@@ -49,7 +49,7 @@
49
49
  <% for mapping in Rewritten.list_range("froms", params[:start].to_i, Rewritten.per_page) %>
50
50
  <tr>
51
51
  <td class=''><a href="<%= mapping %>" target="new"><%= mapping %></td>
52
- <td class=''><a href="<%= u("/to?to=#{to=Rewritten.redis.get("from:#{mapping}")}") %>"><%= to %></td>
52
+ <td class=''><a href="<%= u("/to?to=#{escape(to=Rewritten.redis.get("from:#{mapping}"))}") %>"><%= to %></td>
53
53
  </tr>
54
54
  <% end %>
55
55
 
@@ -178,7 +178,7 @@ module Rewritten
178
178
  Rewritten.remove_translation(from, to)
179
179
 
180
180
  if Rewritten.num_translations(to) > 0
181
- redirect u("/to?to=#{to}")
181
+ redirect u("/to?to=#{escape(to)}")
182
182
  else
183
183
  redirect u("/")
184
184
  end
@@ -1,3 +1,3 @@
1
1
  module Rewritten
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rewritten
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kai Rubarth
@@ -15,7 +15,8 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-09 00:00:00 Z
18
+ date: 2011-09-10 00:00:00 +02:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: redis-namespace
@@ -117,24 +118,19 @@ files:
117
118
  - lib/rewritten/server/views/clear_hits.erb
118
119
  - lib/rewritten/server/views/delete.erb
119
120
  - lib/rewritten/server/views/error.erb
120
- - lib/rewritten/server/views/failed.erb
121
121
  - lib/rewritten/server/views/hits.erb
122
- - lib/rewritten/server/views/key_sets.erb
123
- - lib/rewritten/server/views/key_string.erb
124
122
  - lib/rewritten/server/views/layout.erb
125
123
  - lib/rewritten/server/views/new.erb
126
124
  - lib/rewritten/server/views/next_more.erb
127
125
  - lib/rewritten/server/views/overview.erb
128
- - lib/rewritten/server/views/queues.erb
129
126
  - lib/rewritten/server/views/stats.erb
130
127
  - lib/rewritten/server/views/to.erb
131
128
  - lib/rewritten/server/views/translations.erb
132
- - lib/rewritten/server/views/workers.erb
133
- - lib/rewritten/server/views/working.erb
134
129
  - lib/rewritten/version.rb
135
130
  - lib/test.ru
136
131
  - rewritten.gemspec
137
132
  - test/test_rewritten.rb
133
+ has_rdoc: true
138
134
  homepage: ""
139
135
  licenses: []
140
136
 
@@ -164,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
160
  requirements: []
165
161
 
166
162
  rubyforge_project: rewritten
167
- rubygems_version: 1.8.6
163
+ rubygems_version: 1.6.2
168
164
  signing_key:
169
165
  specification_version: 3
170
166
  summary: A redis-based URL rewriting engine
@@ -1,64 +0,0 @@
1
- <%start = params[:start].to_i %>
2
- <%failed = Resque::Failure.all(start, 20)%>
3
- <% index = 0 %>
4
- <% date_format = "%Y/%m/%d %T %z" %>
5
-
6
- <h1>Failed Jobs</h1>
7
- <%unless failed.empty?%>
8
- <form method="POST" action="<%=u 'failed/clear'%>" class='clear-failed'>
9
- <input type='submit' name='' value='Clear Failed Jobs' />
10
- </form>
11
- <%end%>
12
-
13
- <p class='sub'>Showing <%=start%> to <%= start + 20 %> of <b><%= size = Resque::Failure.count %></b> jobs</p>
14
-
15
- <ul class='failed'>
16
- <%for job in failed%>
17
- <% index += 1 %>
18
- <li>
19
- <dl>
20
- <% if job.nil? %>
21
- <dt>Error</dt>
22
- <dd>Job <%= index%> could not be parsed; perhaps it contains invalid JSON?</dd>
23
- <% else %>
24
- <dt>Worker</dt>
25
- <dd>
26
- <a href="<%= u(:workers, job['worker']) %>"><%= job['worker'].split(':')[0...2].join(':') %></a> on <b class='queue-tag'><%= job['queue'] %></b > at <b><span class="time"><%= Time.parse(job['failed_at']).strftime(date_format) %></span></b>
27
- <% if job['retried_at'] %>
28
- <div class='retried'>
29
- Retried <b><span class="time"><%= Time.parse(job['retried_at']).strftime(date_format) %></span></b>
30
- <a href="<%= u "failed/remove/#{start + index - 1}" %>" class="remove" rel="remove">Remove</a>
31
- </div>
32
- <% else %>
33
- <div class='controls'>
34
- <a href="<%= u "failed/requeue/#{start + index - 1}" %>" rel="retry">Retry</a>
35
- or
36
- <a href="<%= u "failed/remove/#{start + index - 1}" %>" rel="remove">Remove</a>
37
- </div>
38
- <% end %>
39
- </dd>
40
- <dt>Class</dt>
41
- <dd><code><%= job['payload'] ? job['payload']['class'] : 'nil' %></code></dd>
42
- <dt>Arguments</dt>
43
- <dd><pre><%=h job['payload'] ? show_args(job['payload']['args']) : 'nil' %></pre></dd>
44
- <dt>Exception</dt>
45
- <dd><code><%= job['exception'] %></code></dd>
46
- <dt>Error</dt>
47
- <dd class='error'>
48
- <% if job['backtrace'] %>
49
- <a href="#" class="backtrace"><%= h(job['error']) %></a>
50
- <pre style='display:none'><%=h job['backtrace'].join("\n") %></pre>
51
- <% else %>
52
- <%=h job['error'] %>
53
- <% end %>
54
- </dd>
55
- <% end %>
56
- </dl>
57
- <div class='r'>
58
- </div>
59
- </li>
60
- <%end%>
61
- </ul>
62
-
63
- <%= partial :next_more, :start => start, :size => size %>
64
-
@@ -1,19 +0,0 @@
1
- <% if key = params[:key] %>
2
-
3
- <p class='sub'>
4
- Showing <%= start = params[:start].to_i %> to <%= start + 20 %> of <b><%=size = redis_get_size(key) %></b>
5
- </p>
6
-
7
- <h1>Key "<%= key %>" is a <%= resque.redis.type key %></h1>
8
- <table>
9
- <% for row in redis_get_value_as_array(key, start) %>
10
- <tr>
11
- <td>
12
- <%= row %>
13
- </td>
14
- </tr>
15
- <% end %>
16
- </table>
17
-
18
- <%= partial :next_more, :start => start, :size => size %>
19
- <% end %>
@@ -1,11 +0,0 @@
1
- <% if key = params[:key] %>
2
- <h1>Key "<%= key %>" is a <%= resque.redis.type key %></h1>
3
- <h2>size: <%= redis_get_size(key) %></h2>
4
- <table>
5
- <tr>
6
- <td>
7
- <%= redis_get_value_as_array(key) %>
8
- </td>
9
- </tr>
10
- </table>
11
- <% end %>
@@ -1,49 +0,0 @@
1
- <%# @subtabs = resque.queues unless partial? || params[:id].nil? %>
2
-
3
- <% if queue = params[:id] %>
4
-
5
- <h1>Pending jobs on <span class='hl'><%= queue %></span></h1>
6
- <form method="POST" action="<%=u "/queues/#{queue}/remove" %>" class='remove-queue'>
7
- <input type='submit' name='' value='Remove Queue' onclick='return confirm("Are you absolutely sure? This cannot be undone.");' />
8
- </form>
9
- <p class='sub'>Showing <%= start = params[:start].to_i %> to <%= start + 20 %> of <b><%=size = rewritten.size(queue)%></b> jobs</p>
10
- <table class='jobs'>
11
- <tr>
12
- <th>Class</th>
13
- <th>Args</th>
14
- </tr>
15
- <% for job in (jobs = rewritten.peek(queue, start, 20)) %>
16
- <tr>
17
- <td class='class'><%= job['class'] %></td>
18
- <td class='args'><%=h job['args'].inspect %></td>
19
- </tr>
20
- <% end %>
21
- <% if jobs.empty? %>
22
- <tr>
23
- <td class='no-data' colspan='2'>There are no pending jobs in this queue</td>
24
- </tr>
25
- <% end %>
26
- </table>
27
- <%= partial :next_more, :start => start, :size => size %>
28
- <% else %>
29
-
30
- <h1 class='wi'>Queues</h1>
31
- <p class='intro'>The list below contains all the registered queues with the number of jobs currently in the queue. Select a queue from above to view all jobs currently pending on the queue.</p>
32
- <table class='queues'>
33
- <tr>
34
- <th>Name</th>
35
- <th>Jobs</th>
36
- </tr>
37
- <% for queue in rewritten.queues.sort_by { |q| q.to_s } %>
38
- <tr>
39
- <td class='queue'><a class="queue" href="<%= u "queues/#{queue}" %>"><%= queue %></a></td>
40
- <td class='size'><%= rewritten.size queue %></td>
41
- </tr>
42
- <% end %>
43
- <tr class="<%= Rewritten::Failure.count.zero? ? "failed" : "failure" %>">
44
- <td class='queue failed'><a class="queue" href="<%= u :failed %>">failed</a></td>
45
- <td class='size'><%= Rewritten::Failure.count %></td>
46
- </tr>
47
- </table>
48
-
49
- <% end %>
@@ -1,109 +0,0 @@
1
- <% @subtabs = worker_hosts.keys.sort unless worker_hosts.size == 1 %>
2
-
3
- <% if params[:id] && worker = Resque::Worker.find(params[:id]) %>
4
-
5
- <h1>Worker <%= worker %></h1>
6
- <table class='workers'>
7
- <tr>
8
- <th>&nbsp;</th>
9
- <th>Host</th>
10
- <th>Pid</th>
11
- <th>Started</th>
12
- <th>Queues</th>
13
- <th>Processed</th>
14
- <th>Failed</th>
15
- <th>Processing</th>
16
- </tr>
17
- <tr>
18
- <td class='icon'><img src="<%=u state = worker.state %>.png" alt="<%= state %>" title="<%= state %>"></td>
19
-
20
- <% host, pid, queues = worker.to_s.split(':') %>
21
- <td><%= host %></td>
22
- <td><%= pid %></td>
23
- <td><span class="time"><%= worker.started %></span></td>
24
- <td class='queues'><%= queues.split(',').map { |q| '<a class="queue-tag" href="' + u("/queues/#{q}") + '">' + q + '</a>'}.join('') %></td>
25
- <td><%= worker.processed %></td>
26
- <td><%= worker.failed %></td>
27
- <td class='process'>
28
- <% data = worker.processing || {} %>
29
- <% if data['queue'] %>
30
- <code><%= data['payload']['class'] %></code>
31
- <small><a class="queue time" href="<%=u "/working/#{worker}" %>"><%= data['run_at'] %></a></small>
32
- <% else %>
33
- <span class='waiting'>Waiting for a job...</span>
34
- <% end %>
35
- </td>
36
- </tr>
37
- </table>
38
-
39
- <% elsif params[:id] && !worker_hosts.keys.include?(params[:id]) && params[:id] != 'all' %>
40
-
41
- <h1>Worker doesn't exist</h1>
42
-
43
- <% elsif worker_hosts.size == 1 || params[:id] %>
44
-
45
- <% if worker_hosts.size == 1 || params[:id] == 'all' %>
46
- <% workers = Resque.workers %>
47
- <% else %>
48
- <% workers = worker_hosts[params[:id]].map { |id| Resque::Worker.find(id) } %>
49
- <% end %>
50
-
51
- <h1 class='wi'><%= workers.size %> Workers</h1>
52
- <p class='intro'>The workers listed below are all registered as active on your system.</p>
53
- <table class='workers'>
54
- <tr>
55
- <th>&nbsp;</th>
56
- <th>Where</th>
57
- <th>Queues</th>
58
- <th>Processing</th>
59
- </tr>
60
- <% for worker in (workers = workers.sort_by { |w| w.to_s }) %>
61
- <tr class="<%=state = worker.state%>">
62
- <td class='icon'><img src="<%=u state %>.png" alt="<%= state %>" title="<%= state %>"></td>
63
-
64
- <% host, pid, queues = worker.to_s.split(':') %>
65
- <td class='where'><a href="<%=u "workers/#{worker}"%>"><%= host %>:<%= pid %></a></td>
66
- <td class='queues'><%= queues.split(',').map { |q| '<a class="queue-tag" href="' + u("/queues/#{q}") + '">' + q + '</a>'}.join('') %></td>
67
-
68
- <td class='process'>
69
- <% data = worker.processing || {} %>
70
- <% if data['queue'] %>
71
- <code><%= data['payload']['class'] %></code>
72
- <small><a class="queue time" href="<%=u "/working/#{worker}" %>"><%= data['run_at'] %></a></small>
73
- <% else %>
74
- <span class='waiting'>Waiting for a job...</span>
75
- <% end %>
76
- </td>
77
- </tr>
78
- <% end %>
79
- <% if workers.empty? %>
80
- <tr>
81
- <td colspan='4' class='no-data'>There are no registered workers</td>
82
- </tr>
83
- <% end %>
84
- </table>
85
- <%=poll%>
86
-
87
- <% else %>
88
- <% @subtabs = [] %>
89
- <h1 class='wi'>Workers</h1>
90
- <p class='intro'>The hostnames below all have registered workers. Select a hostname to view its workers, or "all" to see all workers.</p>
91
- <table class='queues'>
92
- <tr>
93
- <th>Hostname</th>
94
- <th>Workers</th>
95
- </tr>
96
- <% for hostname, workers in worker_hosts.sort_by { |h,w| h } %>
97
- <tr>
98
- <td class='queue'><a class="queue" href="<%= u "workers/#{hostname}" %>"><%= hostname %></a></td>
99
- <td class='size'><%= workers.size %></td>
100
- </tr>
101
- <% end %>
102
- <tr class="failed">
103
- <td class='queue failed'><a class="queue" href="<%= u "workers/all" %>">all workers</a></td>
104
- <td class='size'><%= Resque.workers.size %></td>
105
- </tr>
106
- </table>
107
-
108
-
109
- <% end %>
@@ -1,72 +0,0 @@
1
- <% if params[:id] && (worker = Resque::Worker.find(params[:id])) && worker.job %>
2
- <h1><%= worker %>'s job</h1>
3
-
4
- <table>
5
- <tr>
6
- <th>&nbsp;</th>
7
- <th>Where</th>
8
- <th>Queue</th>
9
- <th>Started</th>
10
- <th>Class</th>
11
- <th>Args</th>
12
- </tr>
13
- <tr>
14
- <td><img src="<%=u 'working.png' %>" alt="working" title="working"></td>
15
- <% host, pid, _ = worker.to_s.split(':') %>
16
- <td><a href="<%=u "/workers/#{worker}" %>"><%= host %>:<%= pid %></a></td>
17
- <% data = worker.job %>
18
- <% queue = data['queue'] %>
19
- <td><a class="queue" href="<%=u "/queues/#{queue}" %>"><%= queue %></a></td>
20
- <td><span class="time"><%= data['run_at'] %></span></td>
21
- <td>
22
- <code><%= data['payload']['class'] %></code>
23
- </td>
24
- <td><%=h data['payload']['args'].inspect %></td>
25
- </tr>
26
- </table>
27
-
28
- <% else %>
29
-
30
- <%
31
- workers = resque.working
32
- jobs = workers.collect {|w| w.job }
33
- worker_jobs = workers.zip(jobs)
34
- worker_jobs = worker_jobs.reject { |w, j| w.idle? }
35
- %>
36
-
37
- <h1 class='wi'><%= worker_jobs.size %> of <%= resque.workers.size %> Workers Working</h1>
38
- <p class='intro'>The list below contains all workers which are currently running a job.</p>
39
- <table class='workers'>
40
- <tr>
41
- <th>&nbsp;</th>
42
- <th>Where</th>
43
- <th>Queue</th>
44
- <th>Processing</th>
45
- </tr>
46
- <% if worker_jobs.empty? %>
47
- <tr>
48
- <td colspan="4" class='no-data'>Nothing is happening right now...</td>
49
- </tr>
50
- <% end %>
51
-
52
- <% worker_jobs.sort_by {|w, j| j['run_at'] ? j['run_at'] : '' }.each do |worker, job| %>
53
- <tr>
54
- <td class='icon'><img src="<%=u state = worker.state %>.png" alt="<%= state %>" title="<%= state %>"></td>
55
- <% host, pid, queues = worker.to_s.split(':') %>
56
- <td class='where'><a href="<%=u "/workers/#{worker}" %>"><%= host %>:<%= pid %></a></td>
57
- <td class='queues queue'>
58
- <a class="queue-tag" href="<%=u "/queues/#{job['queue']}" %>"><%= job['queue'] %></a>
59
- </td>
60
- <td class='process'>
61
- <% if job['queue'] %>
62
- <code><%= job['payload']['class'] %></code>
63
- <small><a class="queue time" href="<%=u "/working/#{worker}" %>"><%= job['run_at'] %></a></small>
64
- <% else %>
65
- <span class='waiting'>Waiting for a job...</span>
66
- <% end %>
67
- </td>
68
- </tr>
69
- <% end %>
70
- </table>
71
-
72
- <% end %>