beanstalkd_view 1.0.1 → 1.0.2

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