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.
@@ -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
@@ -1 +1 @@
1
- 1.9.3-p484
1
+ 2.1.1
@@ -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.73"
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"
@@ -6,4 +6,5 @@ module Bumbleworks
6
6
  end
7
7
 
8
8
  Bumbleworks::Gui::Application.root = File.expand_path('..', File.dirname(__FILE__))
9
+ Bumbleworks::Gui::Application.auto_require_paths << 'lib'
9
10
  Bumbleworks::Gui::Application.require_all_files
@@ -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 '/trackers', :to => 'trackers#index', :methods => [:get]
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 => Bumbleworks::Task.find_by_id(params[:id])
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
@@ -1,5 +1,5 @@
1
1
  module Bumbleworks
2
2
  module Gui
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  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
@@ -34,7 +34,7 @@ RSpec.configure do |config|
34
34
  end
35
35
 
36
36
  config.after(:suite, :type => :features) do
37
- Bumbleworks.dashboard.worker.shutdown
37
+ Bumbleworks::Worker.shutdown_all
38
38
  end
39
39
 
40
40
  config.include PathHelpers
@@ -2,4 +2,8 @@ class TaskDetail < WindowDriver
2
2
  def has_task?(task)
3
3
  page.has_text?(task.id)
4
4
  end
5
+
6
+ def has_claimant?(claimant)
7
+ page.first('.claimant').has_text?(claimant)
8
+ end
5
9
  end
@@ -0,0 +1,5 @@
1
+ class WorkerDetail < WindowDriver
2
+ def has_worker?(worker)
3
+ page.has_text?(worker.id)
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class WorkerIndex < WindowDriver
2
+ def has_worker?(worker)
3
+ page.has_text?(worker.id)
4
+ end
5
+
6
+ def has_workers?(workers)
7
+ workers.all? do |worker|
8
+ has_worker?(worker)
9
+ end
10
+ end
11
+ end
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.4
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-06-17 00:00:00.000000000 Z
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.73
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.73
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: 1.8.23
240
+ rubygems_version: 2.2.2
256
241
  signing_key:
257
- specification_version: 3
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