bumbleworks-gui 0.0.4 → 0.0.5
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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -1
- data/bumbleworks-gui.gemspec +1 -1
- data/lib/bumbleworks/gui/config/application.rb +1 -0
- data/lib/bumbleworks/gui/config/routes.rb +6 -1
- data/lib/bumbleworks/gui/controllers/tasks_controller.rb +21 -1
- data/lib/bumbleworks/gui/controllers/workers_controller.rb +26 -0
- data/lib/bumbleworks/gui/lib/time_support.rb +23 -0
- data/lib/bumbleworks/gui/version.rb +1 -1
- data/lib/bumbleworks/gui/views/layouts/default.html.erb +1 -0
- data/lib/bumbleworks/gui/views/shared/workers.html.erb +29 -0
- data/lib/bumbleworks/gui/views/tasks/actions.html.erb +20 -0
- data/lib/bumbleworks/gui/views/tasks/show.html.erb +6 -1
- data/lib/bumbleworks/gui/views/workers/index.html.erb +21 -0
- data/lib/bumbleworks/gui/views/workers/show.html.erb +25 -0
- data/spec/features/task_administration_spec.rb +35 -0
- data/spec/features/worker_administration_spec.rb +41 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/drivers/task_detail.rb +4 -0
- data/spec/support/drivers/worker_detail.rb +5 -0
- data/spec/support/drivers/worker_index.rb +11 -0
- metadata +40 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dedbd3923bbc3165fe31905124efcdba6ab9b736
|
4
|
+
data.tar.gz: 84e2b4ec345d50d9e4e26ff8f8e2aa46890758d7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5e9891fe4a01b6be05a4b5ebfec65fcb9ad76c135dd0815b2268ee43c20401c3e2c3e3b37414287e7970c5c5c522195611b51d6348e70324dde20c09f872da20
|
7
|
+
data.tar.gz: 266facdeae58cba52227902a50e84dadc95b1b7057f285d8f4dfb8c88c22bf6302a1a2e4f3efa767ca9de8dfccb65c25695276a90670f72cba69cad43313a303
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
2.1.1
|
data/bumbleworks-gui.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_runtime_dependency "bumbleworks", ">= 0.0.
|
22
|
+
spec.add_runtime_dependency "bumbleworks", ">= 0.0.82"
|
23
23
|
spec.add_runtime_dependency "rory", ">= 0.3.11"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
@@ -5,7 +5,10 @@ Bumbleworks::Gui::Application.set_routes do
|
|
5
5
|
match '/entities/:type/:id', :to => 'entities#show', :methods => [:get]
|
6
6
|
match '/trackers', :to => 'trackers#index', :methods => [:get]
|
7
7
|
match '/trackers/:id', :to => 'trackers#show', :methods => [:get]
|
8
|
-
match '/
|
8
|
+
match '/workers', :to => 'workers#index', :methods => [:get]
|
9
|
+
match '/workers/command', :to => 'workers#change_global_state', :methods => [:put]
|
10
|
+
match '/workers/purge', :to => 'workers#purge_stale', :methods => [:delete]
|
11
|
+
match '/workers/:id', :to => 'workers#show', :methods => [:get]
|
9
12
|
match '/processes/:pid/expressions/:id', :to => 'expressions#show', :methods => [:get]
|
10
13
|
match '/processes/:pid/expressions/:id/cancel', :to => 'expressions#cancel', :methods => [:delete]
|
11
14
|
match '/processes/:pid/expressions/:id/kill', :to => 'expressions#kill', :methods => [:delete]
|
@@ -14,6 +17,8 @@ Bumbleworks::Gui::Application.set_routes do
|
|
14
17
|
match '/processes', :to => 'processes#index', :methods => [:get]
|
15
18
|
match '/tasks/:id', :to => 'tasks#show', :methods => [:get]
|
16
19
|
match '/tasks', :to => 'tasks#index', :methods => [:get]
|
20
|
+
match '/tasks/:id/claim', :to => 'tasks#claim', :methods => [:put]
|
21
|
+
match '/tasks/:id/complete', :to => 'tasks#complete', :methods => [:put]
|
17
22
|
match '/', :to => 'dashboards#show', :methods => [:get]
|
18
23
|
end
|
19
24
|
end
|
@@ -6,7 +6,27 @@ module Bumbleworks
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def show
|
9
|
-
expose :task =>
|
9
|
+
expose :task => task
|
10
|
+
end
|
11
|
+
|
12
|
+
def claim
|
13
|
+
if params[:action] == 'release'
|
14
|
+
task.release
|
15
|
+
else
|
16
|
+
task.claim(params[:claimant])
|
17
|
+
end
|
18
|
+
redirect path_to('tasks_show', :id => task.id)
|
19
|
+
end
|
20
|
+
|
21
|
+
def complete
|
22
|
+
task.complete
|
23
|
+
redirect path_to('tasks_index')
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def task
|
29
|
+
Bumbleworks::Task.find_by_id(params[:id])
|
10
30
|
end
|
11
31
|
end
|
12
32
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Bumbleworks
|
2
|
+
module Gui
|
3
|
+
class WorkersController < ApplicationController
|
4
|
+
def index
|
5
|
+
Bumbleworks::Worker.refresh_worker_info
|
6
|
+
expose :workers => Bumbleworks::Worker.info
|
7
|
+
end
|
8
|
+
|
9
|
+
def show
|
10
|
+
Bumbleworks::Worker.refresh_worker_info
|
11
|
+
expose :id => params[:id], :info => Bumbleworks::Worker.info[params[:id]]
|
12
|
+
end
|
13
|
+
|
14
|
+
def change_global_state
|
15
|
+
new_state = params[:state]
|
16
|
+
Bumbleworks::Worker.change_worker_state(new_state)
|
17
|
+
redirect path_to('workers_index')
|
18
|
+
end
|
19
|
+
|
20
|
+
def purge_stale
|
21
|
+
Bumbleworks::Worker.purge_stale_worker_info
|
22
|
+
redirect path_to('workers_index')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TimeSupport
|
2
|
+
class << self
|
3
|
+
def seconds_to_units(seconds, include_zeros: false, round_seconds: true)
|
4
|
+
seconds = seconds.to_i if round_seconds
|
5
|
+
units = Hash[
|
6
|
+
[:days, :hours, :minutes, :seconds].zip(
|
7
|
+
[60, 60, 24].inject([seconds]) {|result, unitsize|
|
8
|
+
result.unshift(*result.shift.divmod(unitsize))
|
9
|
+
result
|
10
|
+
}
|
11
|
+
)
|
12
|
+
]
|
13
|
+
units.reject! { |k,v| v == 0 } unless include_zeros
|
14
|
+
units
|
15
|
+
end
|
16
|
+
|
17
|
+
def seconds_to_units_in_words(seconds, **options)
|
18
|
+
seconds_to_units(seconds, options).map { |unit, num|
|
19
|
+
"#{num} #{unit}"
|
20
|
+
}.join(', ')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -31,6 +31,7 @@
|
|
31
31
|
<li><a href="<%= path_to 'processes_index', :page => 1 %>">Processes</a></li>
|
32
32
|
<li><a href="<%= path_to 'trackers_index' %>">Trackers</a></li>
|
33
33
|
<li><a href="<%= path_to 'tasks_index' %>">Tasks</a></li>
|
34
|
+
<li><a href="<%= path_to 'workers_index' %>">Workers</a></li>
|
34
35
|
</ul>
|
35
36
|
</div>
|
36
37
|
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<div id="workers">
|
2
|
+
<table class="pure-table pure-table-bordered">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th class="sort" data-sort="id">ID</th>
|
6
|
+
<th class="sort" data-sort="state">State</th>
|
7
|
+
<th class="sort" data-sort="host">Host</th>
|
8
|
+
<th class="sort" data-sort="pid">PID</th>
|
9
|
+
<th class="sort" data-sort="uptime">Uptime</th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody class="list">
|
13
|
+
<% workers.each do |id, info| %>
|
14
|
+
<tr>
|
15
|
+
<td class="id"><a href="<%= path_to 'workers_show', :id => id %>"><%= id %></a></td>
|
16
|
+
<td class="state"><%= info['state'] %></td>
|
17
|
+
<td class="host"><%= "#{info['hostname']} (#{info['ip']})" %></td>
|
18
|
+
<td class="pid"><%= info['pid'] %></td>
|
19
|
+
<td class="uptime"><%= TimeSupport.seconds_to_units_in_words(info['uptime']) %></td>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
</tbody>
|
23
|
+
</table>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<%= render 'shared/list_js_script', :locals => {
|
27
|
+
:list_id => 'workers',
|
28
|
+
:rows => workers.count
|
29
|
+
} %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<form action="<%= path_to 'tasks_claim', :id => task.id %>" class="inline" method="post">
|
2
|
+
<input type="hidden" name="_method" value="put">
|
3
|
+
<% if task.claimed? %>
|
4
|
+
<button type="submit" name="action" value="release" class="pure-button button-warning button-top" id="release-button">
|
5
|
+
Release
|
6
|
+
</button>
|
7
|
+
<% else %>
|
8
|
+
<input type="text" name="claimant">
|
9
|
+
<button type="submit" name="action" value="claim" class="pure-button button-error button-bottom" id="claim-button">
|
10
|
+
Claim
|
11
|
+
</button>
|
12
|
+
<% end %>
|
13
|
+
</form>
|
14
|
+
|
15
|
+
<form action="<%= path_to 'tasks_complete', :id => task.id %>" class="inline" method="post">
|
16
|
+
<input type="hidden" name="_method" value="put">
|
17
|
+
<button type="submit" name="action" value="complete" class="pure-button button-error button-bottom" id="complete-button">
|
18
|
+
Complete
|
19
|
+
</button>
|
20
|
+
</form>
|
@@ -9,5 +9,10 @@
|
|
9
9
|
<dd><%= task.role %></dd>
|
10
10
|
|
11
11
|
<dt>Claimant</dt>
|
12
|
-
<dd><%= task.claimant || '<em>unclaimed</em>' %></dd>
|
12
|
+
<dd class="claimant"><%= task.claimant || '<em>unclaimed</em>' %></dd>
|
13
|
+
|
14
|
+
<dt>Actions</dt>
|
15
|
+
<dd>
|
16
|
+
<%= render 'tasks/actions', :locals => { :task => task } %>
|
17
|
+
</dd>
|
13
18
|
</dl>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div>
|
2
|
+
<%= render 'shared/workers', :locals => { :workers => workers} %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="action-button-group">
|
6
|
+
<% { :paused => 'Pause', :running => 'Start', :stopped => 'Stop' }.each do |state, action| %>
|
7
|
+
<form action="<%= path_to 'workers_change_global_state' %>" class="inline" method="post">
|
8
|
+
<input type="hidden" name="_method" value="put">
|
9
|
+
<input type="hidden" name="state" value="<%= state %>">
|
10
|
+
<button type="submit" name="action" value="<%= action.downcase %>" class="pure-button button-error button-bottom" id="<%= action.downcase %>-button">
|
11
|
+
<%= action %> All
|
12
|
+
</button>
|
13
|
+
</form>
|
14
|
+
<% end %>
|
15
|
+
<form action="<%= path_to 'workers_purge_stale' %>" class="inline" method="post">
|
16
|
+
<input type="hidden" name="_method" value="delete">
|
17
|
+
<button type="submit" name="action" value="purge" class="pure-button button-error button-bottom" id="purge-button">
|
18
|
+
Purge Stopped Worker Info
|
19
|
+
</button>
|
20
|
+
</form>
|
21
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<dl>
|
2
|
+
<dt>ID</dt>
|
3
|
+
<dd><%= id %></dd>
|
4
|
+
|
5
|
+
<dt>State</dt>
|
6
|
+
<dd><%= info['state'] %></dd>
|
7
|
+
|
8
|
+
<dt>Host</dt>
|
9
|
+
<dd><%= "#{info['hostname']} (#{info['ip']})" %></dd>
|
10
|
+
|
11
|
+
<dt>PID</dt>
|
12
|
+
<dd><%= info['pid'] %></dd>
|
13
|
+
|
14
|
+
<dt>Uptime</dt>
|
15
|
+
<dd><%= TimeSupport.seconds_to_units_in_words(info['uptime']) %></dd>
|
16
|
+
|
17
|
+
<dt>Info Last Saved At</dt>
|
18
|
+
<dd><%= info['put_at'] %></dd>
|
19
|
+
|
20
|
+
<dt>Messages Processed Last Minute</dt>
|
21
|
+
<dd><%= info['processed_last_minute'] %> (avg wait time: <%= (info['wait_time_last_minute'] * 1000).to_i %>ms)</dd>
|
22
|
+
|
23
|
+
<dt>Messages Processed Last Hour</dt>
|
24
|
+
<dd><%= info['processed_last_hour'] %> (avg wait time: <%= (info['wait_time_last_hour'] * 1000).to_i %>ms)</dd>
|
25
|
+
</dl>
|
@@ -19,4 +19,39 @@ feature "Task management" do
|
|
19
19
|
|
20
20
|
expect(task_detail).to have_task(task)
|
21
21
|
end
|
22
|
+
|
23
|
+
scenario "Admin claims task for token" do
|
24
|
+
process = Bumbleworks.launch!('task_process')
|
25
|
+
task = process.tasks.next_available
|
26
|
+
|
27
|
+
visit_scoped "/tasks/#{task.id}"
|
28
|
+
fill_in :claimant, :with => 'frooge'
|
29
|
+
click_button :claim
|
30
|
+
|
31
|
+
expect(task_detail).to have_claimant('frooge')
|
32
|
+
end
|
33
|
+
|
34
|
+
scenario "Admin releases task" do
|
35
|
+
process = Bumbleworks.launch!('task_process')
|
36
|
+
task = process.tasks.next_available
|
37
|
+
task.claim('togurram')
|
38
|
+
|
39
|
+
visit_scoped "/tasks/#{task.id}"
|
40
|
+
click_button :release
|
41
|
+
|
42
|
+
expect(task_detail).not_to have_claimant('togurram')
|
43
|
+
end
|
44
|
+
|
45
|
+
scenario "Admin completes task" do
|
46
|
+
process = Bumbleworks.launch!('task_process')
|
47
|
+
task = process.tasks.next_available
|
48
|
+
task.claim('togurram')
|
49
|
+
|
50
|
+
visit_scoped "/tasks/#{task.id}"
|
51
|
+
click_button :complete
|
52
|
+
wait_until { process.tasks.count == 1 }
|
53
|
+
|
54
|
+
visit_scoped '/tasks'
|
55
|
+
expect(task_index).not_to have_task(task)
|
56
|
+
end
|
22
57
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
feature "Worker management" do
|
2
|
+
let(:worker_index) { WorkerIndex.new(Capybara) }
|
3
|
+
let(:worker_detail) { WorkerDetail.new(Capybara) }
|
4
|
+
|
5
|
+
scenario "Admin views worker index" do
|
6
|
+
worker1 = Bumbleworks.start_worker!
|
7
|
+
worker2 = Bumbleworks.start_worker!
|
8
|
+
|
9
|
+
visit_scoped '/workers'
|
10
|
+
|
11
|
+
expect(worker_index).to have_workers([Bumbleworks.dashboard.worker, worker1, worker2])
|
12
|
+
end
|
13
|
+
|
14
|
+
scenario "Admin views worker detail" do
|
15
|
+
worker = Bumbleworks.start_worker!
|
16
|
+
|
17
|
+
visit_scoped "/workers/#{worker.id}"
|
18
|
+
|
19
|
+
expect(worker_detail).to have_worker(worker)
|
20
|
+
end
|
21
|
+
|
22
|
+
scenario "Admin pauses all workers" do
|
23
|
+
worker1 = Bumbleworks.start_worker!
|
24
|
+
worker2 = Bumbleworks.start_worker!
|
25
|
+
|
26
|
+
visit_scoped "/workers"
|
27
|
+
click_button :pause
|
28
|
+
expect(page).not_to have_text('running')
|
29
|
+
expect(page).to have_text('paused')
|
30
|
+
end
|
31
|
+
|
32
|
+
scenario "Admin purges stale worker info" do
|
33
|
+
worker1 = Bumbleworks.start_worker!
|
34
|
+
worker2 = Bumbleworks.start_worker!
|
35
|
+
|
36
|
+
visit_scoped "/workers"
|
37
|
+
click_button :stop
|
38
|
+
click_button :purge
|
39
|
+
expect(worker_index).not_to have_workers([worker1, worker2])
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,142 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bumbleworks-gui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ravi Gadad
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bumbleworks
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.
|
19
|
+
version: 0.0.82
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.0.
|
26
|
+
version: 0.0.82
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rory
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 0.3.11
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 0.3.11
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '1.3'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '1.3'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: shotgun
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rspec
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: capybara
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: simplecov
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
description: Bumbleworks web GUI for viewing/administering processes
|
@@ -146,9 +129,9 @@ executables: []
|
|
146
129
|
extensions: []
|
147
130
|
extra_rdoc_files: []
|
148
131
|
files:
|
149
|
-
- .gitignore
|
150
|
-
- .rspec
|
151
|
-
- .ruby-version
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".ruby-version"
|
152
135
|
- Gemfile
|
153
136
|
- LICENSE.txt
|
154
137
|
- README.md
|
@@ -175,6 +158,8 @@ files:
|
|
175
158
|
- lib/bumbleworks/gui/controllers/processes_controller.rb
|
176
159
|
- lib/bumbleworks/gui/controllers/tasks_controller.rb
|
177
160
|
- lib/bumbleworks/gui/controllers/trackers_controller.rb
|
161
|
+
- lib/bumbleworks/gui/controllers/workers_controller.rb
|
162
|
+
- lib/bumbleworks/gui/lib/time_support.rb
|
178
163
|
- lib/bumbleworks/gui/version.rb
|
179
164
|
- lib/bumbleworks/gui/views/dashboards/show.html.erb
|
180
165
|
- lib/bumbleworks/gui/views/entities/index.html.erb
|
@@ -192,16 +177,21 @@ files:
|
|
192
177
|
- lib/bumbleworks/gui/views/shared/processes.html.erb
|
193
178
|
- lib/bumbleworks/gui/views/shared/tasks.html.erb
|
194
179
|
- lib/bumbleworks/gui/views/shared/trackers.html.erb
|
180
|
+
- lib/bumbleworks/gui/views/shared/workers.html.erb
|
181
|
+
- lib/bumbleworks/gui/views/tasks/actions.html.erb
|
195
182
|
- lib/bumbleworks/gui/views/tasks/index.html.erb
|
196
183
|
- lib/bumbleworks/gui/views/tasks/show.html.erb
|
197
184
|
- lib/bumbleworks/gui/views/trackers/index.html.erb
|
198
185
|
- lib/bumbleworks/gui/views/trackers/show.html.erb
|
186
|
+
- lib/bumbleworks/gui/views/workers/index.html.erb
|
187
|
+
- lib/bumbleworks/gui/views/workers/show.html.erb
|
199
188
|
- spec/features/dashboard_display_spec.rb
|
200
189
|
- spec/features/entity_administration_spec.rb
|
201
190
|
- spec/features/expression_administration_spec.rb
|
202
191
|
- spec/features/process_administration_spec.rb
|
203
192
|
- spec/features/task_administration_spec.rb
|
204
193
|
- spec/features/tracker_administration_spec.rb
|
194
|
+
- spec/features/worker_administration_spec.rb
|
205
195
|
- spec/fixtures/bumbleworks_config.rb
|
206
196
|
- spec/fixtures/entities/mock_entity.rb
|
207
197
|
- spec/fixtures/entities/widget.rb
|
@@ -223,38 +213,33 @@ files:
|
|
223
213
|
- spec/support/drivers/tracker_detail.rb
|
224
214
|
- spec/support/drivers/tracker_index.rb
|
225
215
|
- spec/support/drivers/window_driver.rb
|
216
|
+
- spec/support/drivers/worker_detail.rb
|
217
|
+
- spec/support/drivers/worker_index.rb
|
226
218
|
- spec/support/path_helpers.rb
|
227
219
|
- spec/support/process_testing_helpers.rb
|
228
220
|
homepage: ''
|
229
221
|
licenses:
|
230
222
|
- MIT
|
223
|
+
metadata: {}
|
231
224
|
post_install_message:
|
232
225
|
rdoc_options: []
|
233
226
|
require_paths:
|
234
227
|
- lib
|
235
228
|
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
-
none: false
|
237
229
|
requirements:
|
238
|
-
- -
|
230
|
+
- - ">="
|
239
231
|
- !ruby/object:Gem::Version
|
240
232
|
version: '0'
|
241
|
-
segments:
|
242
|
-
- 0
|
243
|
-
hash: -1894466735461666084
|
244
233
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
|
-
none: false
|
246
234
|
requirements:
|
247
|
-
- -
|
235
|
+
- - ">="
|
248
236
|
- !ruby/object:Gem::Version
|
249
237
|
version: '0'
|
250
|
-
segments:
|
251
|
-
- 0
|
252
|
-
hash: -1894466735461666084
|
253
238
|
requirements: []
|
254
239
|
rubyforge_project:
|
255
|
-
rubygems_version:
|
240
|
+
rubygems_version: 2.2.2
|
256
241
|
signing_key:
|
257
|
-
specification_version:
|
242
|
+
specification_version: 4
|
258
243
|
summary: This gem enables a Rory application (mountable in your own app) to make it
|
259
244
|
easier to administer your Bumbleworks instance.
|
260
245
|
test_files:
|
@@ -264,6 +249,7 @@ test_files:
|
|
264
249
|
- spec/features/process_administration_spec.rb
|
265
250
|
- spec/features/task_administration_spec.rb
|
266
251
|
- spec/features/tracker_administration_spec.rb
|
252
|
+
- spec/features/worker_administration_spec.rb
|
267
253
|
- spec/fixtures/bumbleworks_config.rb
|
268
254
|
- spec/fixtures/entities/mock_entity.rb
|
269
255
|
- spec/fixtures/entities/widget.rb
|
@@ -285,5 +271,7 @@ test_files:
|
|
285
271
|
- spec/support/drivers/tracker_detail.rb
|
286
272
|
- spec/support/drivers/tracker_index.rb
|
287
273
|
- spec/support/drivers/window_driver.rb
|
274
|
+
- spec/support/drivers/worker_detail.rb
|
275
|
+
- spec/support/drivers/worker_index.rb
|
288
276
|
- spec/support/path_helpers.rb
|
289
277
|
- spec/support/process_testing_helpers.rb
|