Skip to content

Commit c066f91

Browse files
committed
mustache'd strings and sets and pagination
1 parent 134f4a2 commit c066f91

File tree

7 files changed

+126
-45
lines changed

7 files changed

+126
-45
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{{#set_key_page?}}
2+
<p class='sub'>
3+
Showing
4+
{{start}}
5+
to
6+
{{end}}
7+
of
8+
<b>
9+
{{size}}
10+
</b>
11+
</p>
12+
13+
<h1>Key "{{key}}" is a {{key_type}}</h1>
14+
<table>
15+
{{#key_as_array}}
16+
<tr>
17+
<td>
18+
{{row}}
19+
</td>
20+
</tr>
21+
{{/key_as_array}}
22+
</table>
23+
24+
{{> next_more}}
25+
{{/set_key_page?}}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{{#key_page?}}
2+
3+
<h1>Key "{{key}}" is a {{key_type}}</h1>
4+
<h2>size: {{key_size}}</h2>
5+
<table>
6+
<tr>
7+
<td>
8+
{{key_value_as_array}}
9+
</td>
10+
</tr>
11+
</table>
12+
13+
{{/key_page?}}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{#pagination?}}
2+
<p class='pagination'>
3+
{{#less_page?}}
4+
<a href="{{current_page}}?start={{start_less}}" class='less'>&laquo; less</a>
5+
{{/less_page?}}
6+
{{#more_page?}}
7+
<a href="{{current_page}}?start={{start_more}}" class='more'>more &raquo;</a>
8+
{{/more_page?}}
9+
</p>
10+
{{/pagination?}}

lib/resque/server/views/key_sets.erb

Lines changed: 0 additions & 20 deletions
This file was deleted.

lib/resque/server/views/key_string.erb

Lines changed: 0 additions & 11 deletions
This file was deleted.

lib/resque/server/views/next_more.erb

Lines changed: 0 additions & 10 deletions
This file was deleted.

lib/resque/server/views/stats.rb

Lines changed: 78 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,36 @@ def redis_server
1010
end
1111

1212
def key_page?
13-
params[:id] == "key"
13+
!!key
14+
end
15+
16+
def set_key_page?
17+
key && SetKeyInfo.new(key, params, request)
18+
end
19+
20+
def key
21+
params[:key]
22+
end
23+
24+
def key_type(key = key)
25+
resque.redis.type(key)
26+
end
27+
28+
def key_size(key = key)
29+
redis_get_size(key)
30+
end
31+
32+
def key_value_as_array(key = key)
33+
redis_get_value_as_array(key)
34+
end
35+
36+
def partial(name)
37+
respond_to?(name) ? send(name) : super
1438
end
1539

1640
def key_string_or_sets
17-
Resque.redis.type(params[:key]) == "string" ? :key_string : :key_sets
41+
type = Resque.redis.type(params[:key]) == "string"
42+
partial(type ? :key_string : :key_sets)
1843
end
1944

2045
def keys_page?
@@ -26,8 +51,8 @@ def keys
2651
hash = {}
2752
hash[:name] = key
2853
hash[:href] = u("/stats/keys/#{key}")
29-
hash[:type] = resque.redis.type(key)
30-
hash[:size] = redis_get_size(key)
54+
hash[:type] = key_type(key)
55+
hash[:size] = key_size(key)
3156
hash
3257
end
3358
end
@@ -55,6 +80,55 @@ def stats
5580
end
5681
end
5782
end
83+
84+
class SetKeyInfo
85+
include Server::Helpers
86+
87+
attr_reader :key, :params, :request
88+
def initialize(key, params, request)
89+
@key = key
90+
@params = params
91+
@request = request
92+
end
93+
94+
def start
95+
params[:start].to_i
96+
end
97+
98+
def end
99+
start + 20
100+
end
101+
102+
def size
103+
redis_get_size(key)
104+
end
105+
106+
def pagination?
107+
less_page? || more_page?
108+
end
109+
110+
def less_page?
111+
start - 20 >= 0
112+
end
113+
114+
def more_page?
115+
start + 20 <= size
116+
end
117+
118+
def start_less
119+
start - 20
120+
end
121+
122+
def start_more
123+
start + 20
124+
end
125+
126+
def key_as_array
127+
redis_get_value_as_array(key, start).map do |item|
128+
{ :row => item }
129+
end
130+
end
131+
end
58132
end
59133
end
60134
end

0 commit comments

Comments
 (0)