que_view 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b77d4ef6cb2aa616ac40ff47f98570756efd4873
4
+ data.tar.gz: 8ae982a7fd4d852b057b554a95b584bc441f4f75
5
+ SHA512:
6
+ metadata.gz: bb0ee81f324a598019e9d8439f7bce18c138fc7e7c2e75938c84f74d95956f2e1c04a9ba262f09d211fb5a5b7557b68d2ff8e942e1415e8316370c38d279b3fa
7
+ data.tar.gz: 0eeb83804f71d29b39422efa8c2315b1a847ff2dc41d5fecc4673471bfc6a431e523624f0e21287247d61da972c3b0c12b187fbd761d145c44631efeef4b98a2
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ *.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 0.0.1
2
+
3
+ - initial release to provide visibility into scheduled Que tasks
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in que_view.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Andrew Kane, 2008-2014 Heroku (initial queries)
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # QueView
2
+
3
+ Visibility into scheuled Que jobs.
4
+
5
+ [Que](https://github.com/chanks/que)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application’s Gemfile:
10
+
11
+ ```ruby
12
+ gem "que_view"
13
+ ```
14
+
15
+ And mount the dashboard in your router.
16
+
17
+ ```ruby
18
+ mount QueView::Engine, at: "que_view"
19
+ ```
20
+ Be sure to [secure the dashboard](#security) in production.
21
+
22
+ ## Security
23
+
24
+ #### Basic Authentication
25
+
26
+ Set the following variables in your environment or an initializer.
27
+
28
+ ```ruby
29
+ ENV["QUEVIEW_USERNAME"] = "rock"
30
+ ENV["QUEVIEW_PASSWORD"] = "aroundtheclock"
31
+ ```
32
+
33
+ #### Devise
34
+
35
+ ```ruby
36
+ authenticate :user, lambda {|user| user.admin? } do
37
+ mount QueView::Engine, at: "que_view"
38
+ end
39
+ ```
40
+
41
+ ## TODO
42
+
43
+ - add rspec tests
44
+ - filter tasks by type
45
+
46
+ Know a bit about Que? [Suggestions](https://github.com/tasboa/que_view/issues) are greatly appreciated.
47
+
48
+ ## History
49
+
50
+ View the [changelog](https://github.com/tasboa/que_view/blob/master/CHANGELOG.md)
51
+
52
+ ## Contributing
53
+
54
+ Everyone is encouraged to help improve this project. Here are a few ways you can help:
55
+
56
+ - [Report bugs](https://github.com/tasboa/que_view/issues)
57
+ - Fix bugs and [submit pull requests](https://github.com/tasboa/que_view/pulls)
58
+ - Write, clarify, or fix documentation
59
+ - Suggest or add new features
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ # TODO: add test calls
@@ -0,0 +1,12 @@
1
+ module QueView
2
+ class HomeController < ActionController::Base
3
+ layout "que_view/application"
4
+ protect_from_forgery
5
+ http_basic_authenticate_with name: ENV["QUEVIEW_USERNAME"],
6
+ password: ENV["QUEVIEW_PASSWORD"] if ENV["QUEVIEW_PASSWORD"]
7
+
8
+ def index
9
+ @jobs = QueJob.all
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ module QueView
2
+ # == Schema Information
3
+ #
4
+ # Table name: que_jobs
5
+ #
6
+ # priority :integer default(100), not null
7
+ # run_at :datetime not null
8
+ # job_id :integer not null
9
+ # job_class :text not null
10
+ # args :json default([]), not null
11
+ # error_count :integer default(0), not null
12
+ # last_error :text
13
+ # queue :text default(""), not null, primary key
14
+ #
15
+
16
+ # the database table that Que uses to store scheduled jobs
17
+ class QueJob < ActiveRecord::Base
18
+ self.table_name = "que_jobs"
19
+ end
20
+ end
@@ -0,0 +1,356 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= @title %> - QueView</title>
5
+
6
+ <meta charset="utf-8" />
7
+
8
+ <style>
9
+ body {
10
+ margin: 0;
11
+ padding: 20px;
12
+ background-color: #2b3e50;
13
+ }
14
+
15
+ body, textarea {
16
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
17
+ font-size: 14px;
18
+ line-height: 1.4;
19
+ color: #333;
20
+ }
21
+
22
+ a, a:visited, a:active {
23
+ color: #428bca;
24
+ text-decoration: none;
25
+ }
26
+
27
+ a:hover {
28
+ text-decoration: underline;
29
+ }
30
+
31
+ table {
32
+ width: 100%;
33
+ border-collapse: collapse;
34
+ border-spacing: 0;
35
+ margin-bottom: 20px;
36
+ }
37
+
38
+ th {
39
+ text-align: left;
40
+ border-bottom: solid 2px #ddd;
41
+ }
42
+
43
+ h1 {
44
+ margin-top: 0;
45
+ font-size: 20px;
46
+ font-weight: bold;
47
+ }
48
+
49
+ h1, p {
50
+ margin-bottom: 20px;
51
+ }
52
+
53
+ ul {
54
+ list-style-type: none;
55
+ padding: 0;
56
+ margin: 0;
57
+ }
58
+
59
+ table td, table th {
60
+ padding: 8px;
61
+ }
62
+
63
+ td {
64
+ border-top: solid 1px #ddd;
65
+ }
66
+
67
+ pre {
68
+ background-color: #ddd;
69
+ padding: 10px;
70
+ white-space: pre-wrap;
71
+ }
72
+
73
+ textarea {
74
+ width: 100%;
75
+ height: 100px;
76
+ border: solid 1px #ccc;
77
+ padding: 10px;
78
+ }
79
+
80
+ .container {
81
+ max-width: 1000px;
82
+ margin-left: auto;
83
+ margin-right: auto;
84
+ }
85
+
86
+ .text-muted {
87
+ color: #999;
88
+ }
89
+
90
+ #status, .content, .alert {
91
+ margin-bottom: 20px;
92
+ }
93
+
94
+ .content {
95
+ padding: 20px 20px 1px 20px;
96
+ background-color: #eee;
97
+ }
98
+
99
+ .queries td {
100
+ vertical-align: middle;
101
+ }
102
+
103
+ #status div {
104
+ margin-bottom: 0;
105
+ }
106
+
107
+ /* nav */
108
+
109
+ .nav a {
110
+ color: #fff;
111
+ text-decoration: none;
112
+ display: block;
113
+ padding: 12px 20px;
114
+ }
115
+
116
+ .nav li.active a {
117
+ background-color: #df691a;
118
+ }
119
+
120
+ .nav a:hover {
121
+ background-color: #4e5d6c;
122
+ }
123
+
124
+ /* buttons */
125
+
126
+ .btn {
127
+ display: inline-block;
128
+ border: none;
129
+ color: #fff;
130
+ padding: 12px 20px;
131
+ font-size: inherit;
132
+ font-family: inherit;
133
+ line-height: 1;
134
+ cursor: pointer;
135
+ outline: none;
136
+ margin: 0;
137
+ -webkit-appearance: none;
138
+ -webkit-border-radius: 0;
139
+ }
140
+
141
+ .btn-danger {
142
+ background-color: #df691a;
143
+ }
144
+
145
+ .btn-info {
146
+ background-color: #5bc0de;
147
+ }
148
+
149
+ /* alerts */
150
+
151
+ .alert {
152
+ padding: 12px 20px;
153
+ color: #fff;
154
+ }
155
+
156
+ .alert-info {
157
+ background-color: #5bc0de;
158
+ }
159
+
160
+ .alert-success {
161
+ background-color: #5cb85c;
162
+ }
163
+
164
+ .alert-warning {
165
+ background-color: #f0ad4e;
166
+ }
167
+
168
+ .alert-danger {
169
+ background-color: #df691a;
170
+ }
171
+
172
+ .alert a {
173
+ color: #fff;
174
+ text-decoration: none;
175
+ }
176
+
177
+ /*
178
+ Simple Grid
179
+ Learn More - http://dallasbass.com/simple-grid-a-lightweight-responsive-css-grid/
180
+ Project Page - http://thisisdallas.github.com/Simple-Grid/
181
+ Author - Dallas Bass
182
+ Site - dallasbass.com
183
+ */
184
+
185
+ *, *:after, *:before {
186
+ -webkit-box-sizing: border-box;
187
+ -moz-box-sizing: border-box;
188
+ box-sizing: border-box;
189
+ }
190
+
191
+ body {
192
+ margin: 0px;
193
+ }
194
+
195
+ [class*='col-'] {
196
+ float: left;
197
+ padding-right: 20px;
198
+ }
199
+
200
+ [class*='col-']:last-of-type {
201
+ padding-right: 0px;
202
+ }
203
+
204
+ .grid {
205
+ width: 100%;
206
+
207
+ margin: 0 auto;
208
+ overflow: hidden;
209
+ }
210
+
211
+ .grid:after {
212
+ content: "";
213
+ display: table;
214
+ clear: both;
215
+ }
216
+
217
+ .grid-pad {
218
+ padding: 20px 0 0px 20px;
219
+ }
220
+
221
+ .grid-pad > [class*='col-']:last-of-type {
222
+ padding-right: 20px;
223
+ }
224
+
225
+ .push-right {
226
+ float: right;
227
+ }
228
+
229
+ /* Content Columns */
230
+
231
+ .col-1-1 {
232
+ width: 100%;
233
+ }
234
+ .col-2-3, .col-8-12 {
235
+ width: 66.66%;
236
+ }
237
+
238
+ .col-1-2, .col-6-12 {
239
+ width: 50%;
240
+ }
241
+
242
+ .col-1-3, .col-4-12 {
243
+ width: 33.33%;
244
+ }
245
+
246
+ .col-1-4, .col-3-12 {
247
+ width: 25%;
248
+ }
249
+
250
+ .col-1-5 {
251
+ width: 20%;
252
+ }
253
+
254
+ .col-1-6, .col-2-12 {
255
+ width: 16.667%;
256
+ }
257
+
258
+ .col-1-7 {
259
+ width: 14.28%;
260
+ }
261
+
262
+ .col-1-8 {
263
+ width: 12.5%;
264
+ }
265
+
266
+ .col-1-9 {
267
+ width: 11.1%;
268
+ }
269
+
270
+ .col-1-10 {
271
+ width: 10%;
272
+ }
273
+
274
+ .col-1-11 {
275
+ width: 9.09%;
276
+ }
277
+
278
+ .col-1-12 {
279
+ width: 8.33%
280
+ }
281
+
282
+ /* Layout Columns */
283
+
284
+ .col-11-12 {
285
+ width: 91.66%
286
+ }
287
+
288
+ .col-10-12 {
289
+ width: 83.333%;
290
+ }
291
+
292
+ .col-9-12 {
293
+ width: 75%;
294
+ }
295
+
296
+ .col-5-12 {
297
+ width: 41.66%;
298
+ }
299
+
300
+ .col-7-12 {
301
+ width: 58.33%
302
+ }
303
+
304
+ @media handheld, only screen and (max-width: 767px) {
305
+
306
+
307
+ .grid {
308
+ width: 100%;
309
+ min-width: 0;
310
+ margin-left: 0px;
311
+ margin-right: 0px;
312
+ padding-left: 0px;
313
+ padding-right: 0px;
314
+ }
315
+
316
+ [class*='col-'] {
317
+ width: auto;
318
+ float: none;
319
+ margin-left: 0px;
320
+ margin-right: 0px;
321
+ margin-top: 10px;
322
+ margin-bottom: 10px;
323
+ padding-right: 0px;
324
+ padding-left: 0px;
325
+ }
326
+ }
327
+ </style>
328
+ </head>
329
+ <body>
330
+ <div class="container">
331
+ <div class="alert alert-<%= alert ? "danger" : "info" %>">
332
+ <% if alert %>
333
+ <%= alert %>
334
+ <% elsif notice %>
335
+ <%= notice %>
336
+ <% elsif Rails.env.development? %>
337
+ Do not use development information to make decisions about your production environment
338
+ <% else %>
339
+ <%= link_to "QueView", root_path %>
340
+ <% end %>
341
+ </div>
342
+
343
+ <div class="grid">
344
+ <div class="col-3-12">
345
+ <ul class="nav">
346
+ <li class="<%= controller.action_name == "index" ? "active" : "" %>"><%= link_to "Jobs", root_path %></li>
347
+ </ul>
348
+ </div>
349
+
350
+ <div class="col-9-12">
351
+ <%= yield %>
352
+ </div>
353
+ </div>
354
+ </div>
355
+ </body>
356
+ </html>
@@ -0,0 +1,36 @@
1
+ <% if @jobs.any? %>
2
+ <div class="content">
3
+ <h1>Jobs</h1>
4
+
5
+ <p>Scheduled jobs</p>
6
+
7
+ <table class="table">
8
+ <thead>
9
+ <tr>
10
+ <th>Priority</th>
11
+ <th>Run At</th>
12
+ <th>Job ID</th>
13
+ <th>Job Class</th>
14
+ <th>Args</th>
15
+ <th>Error Count</th>
16
+ <th>Last Error Message</th>
17
+ <th>Queue Name</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <% @jobs.each do |job| %>
22
+ <tr>
23
+ <td><%= job.priority %></td>
24
+ <td><%= job.run_at %></td>
25
+ <td><%= job.job_id %></td>
26
+ <td><%= job.job_class %></td>
27
+ <td><%= job.args %></td>
28
+ <td><%= job.error_count %></td>
29
+ <td><%= job.last_error %></td>
30
+ <td><%= job.queue %></td>
31
+ </tr>
32
+ <% end %>
33
+ </tbody>
34
+ </table>
35
+ </div>
36
+ <% end %>
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ QueView::Engine.routes.draw do
2
+ root to: "home#index"
3
+ end
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in searchkick.gemspec
4
+ gemspec path: "../"
5
+
6
+ gem "activerecord", "~> 3.1.0"
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in searchkick.gemspec
4
+ gemspec path: "../"
5
+
6
+ gem "activerecord", "~> 3.2.0"
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in searchkick.gemspec
4
+ gemspec path: "../"
5
+
6
+ gem "activerecord", "~> 4.0.0"
@@ -0,0 +1,5 @@
1
+ module QueView
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace QueView
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module QueView
2
+ VERSION = "0.0.1"
3
+ end
data/lib/que_view.rb ADDED
@@ -0,0 +1,14 @@
1
+ require "que_view/version"
2
+ require "active_record"
3
+ require "que_view/engine" if defined?(Rails)
4
+
5
+ module QueView
6
+ # hack for connection
7
+ class Connection < ActiveRecord::Base
8
+ establish_connection ENV["QUEVIEW_DATABASE_URL"] if ENV["QUEVIEW_DATABASE_URL"]
9
+ end
10
+
11
+ class << self
12
+ # custom queries
13
+ end
14
+ end
data/que_view.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "que_view/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "que_view"
8
+ spec.version = QueView::VERSION
9
+ spec.authors = ["Niko Roberts", "Bruno Coelho", "Guy Silva"]
10
+ spec.email = ["niko@tasboa.com", "bruno@tasboa.com", "guy@tasboa.com"]
11
+ spec.summary = %q{Visibility into scheduled Que tasks}
12
+ spec.description = %q{Visibility into scheduled Que tasks}
13
+ spec.homepage = "https://github.com/tasboa/que_view"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "que"
22
+ spec.add_dependency "activerecord"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.6"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ end
@@ -0,0 +1,5 @@
1
+ require_relative "spec_helper"
2
+
3
+ describe QueView do
4
+ # add tests
5
+ end
@@ -0,0 +1,39 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= "test"
3
+
4
+ require File.expand_path("../../config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+ require 'ruby-debug'
7
+
8
+ # Requires supporting ruby files with custom matchers and macros, etc, in
9
+ # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
10
+ # run as spec files by default. This means that files in spec/support that end
11
+ # in _spec.rb will both be required and run as specs, causing the specs to be
12
+ # run twice. It is recommended that you do not name files matching this glob to
13
+ # end with _spec.rb. You can configure this pattern with with the --pattern
14
+ # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
15
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
16
+
17
+ RSpec.configure do |config|
18
+ # ## Mock Framework
19
+ #
20
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
21
+ #
22
+ # config.mock_with :mocha
23
+ # config.mock_with :flexmock
24
+ # config.mock_with :rr
25
+
26
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
27
+ # config.fixture_path = "#{::Rails.root}/spec/fixtures"
28
+
29
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
30
+ # examples within a transaction, remove the following line or assign false
31
+ # instead of true.
32
+ config.use_transactional_fixtures = true
33
+
34
+ # Run specs in random order to surface order dependencies. If you find an
35
+ # order dependency and want to debug it, you can fix the order by providing
36
+ # the seed, which is printed after each run.
37
+ # --seed 1234
38
+ config.order = "random"
39
+ end
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: que_view
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Niko Roberts
8
+ - Bruno Coelho
9
+ - Guy Silva
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-08-04 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: que
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: activerecord
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: bundler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ version: '1.6'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: '1.6'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rspec
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ description: Visibility into scheduled Que tasks
86
+ email:
87
+ - niko@tasboa.com
88
+ - bruno@tasboa.com
89
+ - guy@tasboa.com
90
+ executables: []
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - .gitignore
95
+ - CHANGELOG.md
96
+ - Gemfile
97
+ - LICENSE.txt
98
+ - README.md
99
+ - Rakefile
100
+ - app/controllers/que_view/home_controller.rb
101
+ - app/models/que_view/que_job.rb
102
+ - app/views/layouts/que_view/application.html.erb
103
+ - app/views/que_view/home/index.html.erb
104
+ - config/routes.rb
105
+ - gemfiles/activerecord31.gemfile
106
+ - gemfiles/activerecord32.gemfile
107
+ - gemfiles/activerecord40.gemfile
108
+ - lib/que_view.rb
109
+ - lib/que_view/engine.rb
110
+ - lib/que_view/version.rb
111
+ - que_view.gemspec
112
+ - test/que_view_test.rb
113
+ - test/spec_helper.rb
114
+ homepage: https://github.com/tasboa/que_view
115
+ licenses:
116
+ - MIT
117
+ metadata: {}
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 2.2.2
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Visibility into scheduled Que tasks
138
+ test_files:
139
+ - test/que_view_test.rb
140
+ - test/spec_helper.rb