rewritten 0.0.3 → 0.0.4

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.
@@ -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 %>