beanstalkd_view 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/CHANGELOG.md +6 -0
  2. data/README.md +2 -1
  3. data/Rakefile +46 -0
  4. data/lib/beanstalkd_view/extensions/beanstalk-pool.rb +39 -0
  5. data/lib/beanstalkd_view/resources/{bootstrap/css/overrides.css → css/app.css} +11 -0
  6. data/lib/beanstalkd_view/resources/css/vendor/bootstrap.min.css +9 -0
  7. data/lib/beanstalkd_view/resources/js/app.js +4 -0
  8. data/lib/beanstalkd_view/resources/js/peek_jobs.js +2 -2
  9. data/lib/beanstalkd_view/resources/js/peek_range.js +21 -0
  10. data/lib/beanstalkd_view/resources/js/{bluff → vendor/bluff-0.3.6.2}/bluff-min.js +0 -0
  11. data/lib/beanstalkd_view/resources/js/{bluff → vendor/bluff-0.3.6.2}/js-class.js +0 -0
  12. data/lib/beanstalkd_view/resources/js/vendor/bootstrap.min.js +6 -0
  13. data/lib/beanstalkd_view/resources/js/{jquery-1.7.1.min.js → vendor/jquery-1.7.1.min.js} +0 -0
  14. data/lib/beanstalkd_view/resources/js/{json2.js → vendor/json2.js} +0 -0
  15. data/lib/beanstalkd_view/server.rb +85 -34
  16. data/lib/beanstalkd_view/version.rb +1 -1
  17. data/lib/beanstalkd_view/views/index.erb +9 -0
  18. data/lib/beanstalkd_view/views/layout.erb +7 -15
  19. data/lib/beanstalkd_view/views/peek_range.erb +51 -0
  20. data/lib/beanstalkd_view/views/tube_stats.erb +9 -1
  21. data/lib/beanstalkd_view.rb +2 -0
  22. data/spec/integration/rails_integration_spec.rb +13 -0
  23. data/spec/integration/sinatra_integration_spec.rb +13 -0
  24. data/spec/lib/beanstalkd_view/beanstalkd_util_spec.rb +1 -1
  25. data/spec/rails_app/config/routes.rb +3 -0
  26. data/spec/rails_app/log/test.log +11325 -0
  27. data/spec/rails_helper.rb +21 -0
  28. data/spec/spec_helper.rb +4 -1
  29. data/spec/{lib/beanstalkd_view/server_spec.rb → support/integration_test_shared_examples.rb} +38 -38
  30. metadata +60 -16
  31. data/lib/beanstalkd_view/resources/bootstrap/css/bootstrap.min.css +0 -706
  32. data/lib/beanstalkd_view/resources/bootstrap/img/glyphicons-halflings-white.png +0 -0
  33. data/lib/beanstalkd_view/resources/bootstrap/img/glyphicons-halflings.png +0 -0
  34. data/lib/beanstalkd_view/resources/bootstrap/js/bootstrap.min.js +0 -7
  35. data/lib/beanstalkd_view/resources/js/bluff/excanvas.js +0 -35
@@ -3,22 +3,14 @@
3
3
  <html>
4
4
  <head>
5
5
  <title>Beanstalkd View - <%= BeanstalkdView::VERSION %></title>
6
- <link rel="stylesheet" type="text/css" href="<%= u('/bootstrap/css/bootstrap.min.css') %>"/>
7
- <link rel="stylesheet" type="text/css" href="<%= u('/bootstrap/css/overrides.css') %>"/>
8
6
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
9
- <script type="text/javascript" src="<%= u('/js/jquery-1.7.1.min.js') %>"></script>
10
- <script type="text/javascript" src="<%= u('/bootstrap/js/bootstrap.min.js') %>"></script>
11
- <script type="text/javascript" src="<%= u('/js/json2.js') %>"></script>
12
- <script type="text/javascript" src="<%= u('/js/peek_jobs.js') %>"></script>
13
- <script language="javascript" src="<%= u('/js/bluff/js-class.js') %>"></script>
14
- <script language="javascript" src="<%= u('/js/bluff/bluff-min.js') %>"></script>
15
- <!--[if IE]><script language="javascript" src="<%= u('/js/bluff/excanvas.js') %>"></script><![endif]-->
16
- <script type="text/javascript">
17
- <!-- Enable Tooltips -->
18
- $(document).ready(function() {
19
- $("[rel=tooltip]").tooltip();
20
- });
21
- </script>
7
+ <% css_imports = css :application, :media => 'screen' %>
8
+ <% js_imports = js :application %>
9
+ <%# Must modify sinatra-assetpack output to use the Mount prefix when embedding through Rails %>
10
+ <% if path_prefix %>
11
+ <%= css_imports.gsub(/href='/, "href='#{path_prefix}") %>
12
+ <%= js_imports.gsub(/src='/, "src='#{path_prefix}") %>
13
+ <% end %>
22
14
  </head>
23
15
  <body>
24
16
  <!-- Header -->
@@ -0,0 +1,51 @@
1
+ <div class="row">
2
+ <div class="span12">
3
+ <h3>Peek Range</h3>
4
+ <div class="alert alert-success">
5
+ <strong>NOTE:</strong> Setting min and max to 0 will attempt to guess an appropriate range value based on the current ready queue.
6
+ </div>
7
+ <form class="well form-inline" name="peek_range_form" action="<%= u("/peek-range") %>" method="GET">
8
+ <input type="text" class="span2" name="min" value="<%= @min %>">
9
+ <input type="text" class="span2" name="max" value="<%= @max %>">
10
+ <select id="peek_range_tube_select" class="span2" name="tube">
11
+ <option></option>
12
+ <% @tube_set.each do |tube| %>
13
+ <option <% if @tube == tube%>selected="true"<% end %>><%=tube%></option>
14
+ <% end %>
15
+ </select>
16
+ <button type="submit" class="btn">Refresh</button>
17
+ </form>
18
+ <table id="peek_range_table" class="table table-bordered">
19
+ <tr>
20
+ <th>ID</th>
21
+ <th>Priority</th>
22
+ <th>Age</th>
23
+ <th>Delay</th>
24
+ <th>TTR</th>
25
+ <th>Time Left</th>
26
+ <th>Reserves</th>
27
+ <th>Timeouts</th>
28
+ <th>Releases</th>
29
+ <th>Buries</th>
30
+ <th>Kicks</th>
31
+ <th>Body</th>
32
+ </tr>
33
+ <% @jobs.each do |job| %>
34
+ <tr data-tube="<%=job['tube']%>" <% if job['pri'] < 1024 %>class="urgent"<%end%>>
35
+ <td><%=job['id']%></td>
36
+ <td><%=job['pri']%></td>
37
+ <td><%=job['age']%></td>
38
+ <td><%=job['delay']%></td>
39
+ <td><%=job['ttr']%></td>
40
+ <td><%=job['time-left']%></td>
41
+ <td><%=job['reserves']%></td>
42
+ <td><%=job['timeouts']%></td>
43
+ <td><%=job['releases']%></td>
44
+ <td><%=job['buries']%></td>
45
+ <td><%=job['kicks']%></td>
46
+ <td><p class="peek_range_job_body"><%=job['body'].inspect%><p></td>
47
+ </tr>
48
+ <% end %>
49
+ </table>
50
+ </div>
51
+ </div>
@@ -95,7 +95,7 @@
95
95
  </form>
96
96
 
97
97
  <h3>Kick Tube</h3>
98
- <form class="well form-inline" name="kick_form" action="<%= u("/kick") %>" method="POST">
98
+ <form id="kick_form" class="well form-inline" name="kick_form" action="<%= u("/kick") %>" method="POST">
99
99
  <input type="hidden" name="tube" value="<%= @tube %>">
100
100
  <input type="text" class="span3" placeholder="Number of jobs" name="bound">
101
101
  <button type="submit" class="btn">Kick</button>
@@ -107,6 +107,14 @@
107
107
  <a id="peek_delayed_btn" href="#" class="btn">Peek Delayed</a>
108
108
  <a id="peek_buried_btn" href="#" class="btn">Peek Buried</a>
109
109
  </form>
110
+
111
+ <h3>Peek Range</h3>
112
+ <form id="peek_range_form" class="well form-inline" name="peek_range_form" action="<%= u("/peek-range") %>" method="GET">
113
+ <input type="hidden" name="tube" value="<%= @tube %>">
114
+ <input type="text" class="span2" placeholder="0" name="min">
115
+ <input type="text" class="span2" placeholder="0" name="max">
116
+ <button type="submit" class="btn">Peek</button>
117
+ </form>
110
118
 
111
119
  </div>
112
120
 
@@ -1,10 +1,12 @@
1
1
  require 'rubygems'
2
2
  require 'sinatra/base'
3
3
  require 'sinatra/cookies'
4
+ require 'sinatra/assetpack'
4
5
  require 'erb'
5
6
  require "beanstalk-client"
6
7
  require "json"
7
8
  require "beanstalkd_view/version"
9
+ require "beanstalkd_view/extensions/beanstalk-pool"
8
10
  require "beanstalkd_view/beanstalkd_utils"
9
11
  require 'beanstalkd_view/server'
10
12
 
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe "RailsIntegration", :type => :request do
4
+
5
+ before(:all) do
6
+ # Configure Capybara for Rails
7
+ require "capybara/rails"
8
+ end
9
+
10
+ it_behaves_like "integration_test" do
11
+ let(:site_root) { '/beanstalkd/' }
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe "SinatraIntegration", :type => :request do
4
+
5
+ before :all do
6
+ ENV['BEANSTALK_URL'] = 'beanstalk://localhost/'
7
+ Capybara.app = BeanstalkdView::Server.new
8
+ end
9
+
10
+ it_behaves_like "integration_test" do
11
+ let(:site_root) { '/' }
12
+ end
13
+ end
@@ -26,7 +26,7 @@ describe BeanstalkdView::BeanstalkdUtils do
26
26
  utils = Object.new.extend BeanstalkdView::BeanstalkdUtils
27
27
  @stats = utils.beanstalk.stats
28
28
  @stats.keys.should include('current-jobs-ready')
29
- @stats['current-jobs-ready'].should eq(0)
29
+ @stats['current-jobs-ready'].should > 0
30
30
  end
31
31
  end
32
32
 
@@ -0,0 +1,3 @@
1
+ BeanstalkdView::RailsApp.routes.draw do
2
+ mount BeanstalkdView::Server, :at => "/beanstalkd"
3
+ end