bumbleworks-gui 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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