banter 0.5.0 → 0.7.0

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,32 @@
1
+ %h2 Workers
2
+
3
+ .table.table-responsive
4
+ %table.table.table-striped.table-bordered.table-hover
5
+ %thead
6
+ %tr
7
+ %th Hostname
8
+ %th Process Name
9
+ %th PID
10
+ %th Started
11
+ %th Subscribers
12
+ %th Current Job
13
+ %tbody
14
+ - @workers.each do |worker|
15
+ %tr{class: (worker.executing? ? 'success' : '')}
16
+ %td
17
+ %a{href: "#{root_path}workers/#{worker.id}"}= worker.hostname
18
+ %td= worker.process_name
19
+ %td= worker.pid
20
+ %td= worker.started_at.strftime("%m/%d/%Y %I:%M%p")
21
+ %td
22
+ - subscribers= Array.wrap(worker.worker_classes)
23
+ - if subscribers.size > 2
24
+ %a{href: "#{root_path}workers/#{worker.id}"}= "#{subscribers.size} subscribers"
25
+ - else
26
+ = subscribers.join('<br/>').html_safe
27
+ %td
28
+ - if worker.current_message
29
+ = worker.current_message[:subscriber_class]
30
+ %span.glyphicon.glyphicon-refresh.spin
31
+
32
+
@@ -0,0 +1,45 @@
1
+ !!! 5
2
+ %html(lang="en")
3
+ %head
4
+ %meta(charset="utf-8")
5
+ %meta(http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1")
6
+ %meta(name="viewport" content="width=device-width, initial-scale=1.0")
7
+ %title Banter
8
+ / Le HTML5 shim, for IE6-8 support of HTML elements
9
+ /[if lt IE 9]
10
+ %script{src: "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js" }
11
+ %link{:href=>"//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css", :rel=>"stylesheet"}
12
+ -#= favicon_link_tag 'apple-touch-icon-144x144-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '144x144'
13
+ -#= favicon_link_tag 'apple-touch-icon-114x114-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '114x114'
14
+ -#= favicon_link_tag 'apple-touch-icon-72x72-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '72x72'
15
+ -#= favicon_link_tag 'apple-touch-icon-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png'
16
+ -#= favicon_link_tag 'favicon.ico', :rel => 'shortcut icon'
17
+ %script{:src=>"//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"}
18
+ %script{src: '//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js' }
19
+ %link{href: 'http://fonts.googleapis.com/css?family=Open+Sans:700,800,400', rel: 'stylesheet', type:'text/css'}
20
+ %link{href: "#{root_path}stylesheets/banter.css", rel: 'stylesheet', type:'text/css'}
21
+
22
+
23
+ %body
24
+ %nav.navbar.navbar-default.navbar-fixed-top
25
+ .container
26
+ .navbar-header
27
+ %button.navbar-toggle{type: 'button', data: { toggle: 'collapse', target: '#banter-navbar-collapse'}}
28
+ %span.icon-bar
29
+ %span.icon-bar
30
+ %span.icon-bar
31
+ %a.navbar-brand{href: root_path} Banter
32
+ .collapse.navbar-collapse#banter-navbar-collapse
33
+ %ul.nav.navbar-nav
34
+ %li
35
+ %a{href: root_path} Workers
36
+ %li
37
+ %a{href: "#{root_path}subscribers"} Subscribers
38
+
39
+ .container{style: 'margin-top: 55px; padding-top: 10px'}
40
+ = yield
41
+ %footer
42
+ %p
43
+ Banter &copy; #{Date.today.year} (Developed & Maintained by
44
+ %a{href: 'https://www.honest.com'} The Honest Company
45
+ )
@@ -0,0 +1,52 @@
1
+ .clearfix
2
+ %div.extra-bold.pull-right.padding-large.font-size-lg.rounded-corners-md{ class: (message.executing? ? "bg-info" : (message.succeeded? ? "bg-success" : "bg-danger")) }
3
+ - if message.executing?
4
+ %span.glyphicon.glyphicon-refresh.spin
5
+ WORKING
6
+ - elsif message.succeeded?
7
+ %span.glyphicon.glyphicon-ok
8
+ SUCCESSFUL
9
+ - elsif message.failed?
10
+ %span.glyphicon.glyphicon-remove
11
+ FAILED
12
+ %h2
13
+ Message
14
+
15
+ %ul.list-group
16
+ %li.list-group-item.row
17
+ .col-sm-3.bold Subscriber
18
+ .col-sm-9= message.subscriber_class
19
+
20
+ - worker = message.worker
21
+ - if worker
22
+ %li.list-group-item.row
23
+ .col-sm-3.bold Worker
24
+ .col-sm-9
25
+ %a{href: "#{root_path}workers/#{worker.id}"}= "#{worker.process_name} (PID: #{worker.pid})"
26
+ %li.list-group-item.row
27
+ .col-sm-3.bold Subscriber Key
28
+ .col-sm-9= message.subscribed_key
29
+
30
+ %li.list-group-item.row
31
+ .col-sm-3.bold Payload Key
32
+ .col-sm-9= message.payload_key
33
+
34
+ %li.list-group-item.row
35
+ .col-sm-3.bold Payload
36
+ .col-sm-9
37
+ %pre!= AwesomePrint::Inspector.new(html:true, sort_keys: true, index: false).awesome(message.payload)
38
+ %li.list-group-item.row
39
+ .col-sm-3.bold Context
40
+ .col-sm-9
41
+ %pre!= AwesomePrint::Inspector.new(html:true, sort_keys: true, index: false).awesome(message.context)
42
+ %li.list-group-item.row
43
+ .col-sm-3.bold Started Time
44
+ .col-sm-9= message.started_at.strftime("%m/%d/%Y %I:%M%p")
45
+ - if message.done_at
46
+ %li.list-group-item.row
47
+ .col-sm-3.bold Finished Time
48
+ .col-sm-9 #{message.done_at.strftime("%m/%d/%Y %I:%M%p")}. Took #{(message.done_at - message.started_at) * 1000}ms
49
+ %li.list-group-item.row
50
+ .col-sm-3.bold Queue
51
+ .col-sm-9= message.queue_name
52
+
@@ -0,0 +1,20 @@
1
+ %h2 Messages processed on #{worker.process_name} (PID: #{worker.pid})
2
+ .table.table-responsive
3
+ %table.table.table-striped.table-bordered.table-hover
4
+ %thead
5
+ %tr
6
+ %th Subscriber
7
+ %th Started
8
+ %th Finished
9
+ %th Status
10
+ %tbody
11
+ - messages.each do |message|
12
+ %tr{class: (message.failed? ? 'danger' : '')}
13
+ %td
14
+ %a{href: "#{root_path}messages/#{message.id}"}= message.subscriber_class
15
+ -#%td
16
+ -# %pre!= AwesomePrint::Inspector.new(html:true, sort_keys: true, index: false).awesome(message.payload)
17
+ %td= message.started_at.strftime("%m/%d/%Y %I:%M%p")
18
+ %td= message.done_at.strftime("%m/%d/%Y %I:%M%p") if message.done_at
19
+ %td= message.status.titleize
20
+
@@ -0,0 +1,17 @@
1
+ %h2 Subscribers
2
+ .table.table-responsive
3
+ %table.table.table-striped.table-bordered.table-hover
4
+ %thead
5
+ %tr
6
+ %th Subscriber
7
+ %th Messages Processed
8
+ %th Messages Succeeded
9
+ %tbody
10
+ - BanterMessage.distinct("subscriber_class").each do |subscriber|
11
+ %tr
12
+ %td
13
+ %a{href: "#{root_path}subscribers/#{subscriber}"}= subscriber
14
+ %td= BanterMessage.where(subscriber_class: subscriber).count
15
+ %td= BanterMessage.where(subscriber_class: subscriber, status: BanterMessage::STATUS_SUCCESS).count
16
+
17
+
@@ -0,0 +1,51 @@
1
+ .clearfix
2
+ %div.extra-bold.pull-right.padding-large.font-size-lg.rounded-corners-md{ class: (worker.executing? ? "bg-success" : "bg-info") }
3
+ - if worker.executing?
4
+ %span.glyphicon.glyphicon-refresh.spin
5
+ WORKING
6
+ - else
7
+ IDLE
8
+ %h2
9
+ Worker
10
+
11
+ %ul.list-group
12
+ %li.list-group-item.row
13
+ .col-sm-3.bold Host Name
14
+ .col-sm-9= worker.hostname
15
+ %li.list-group-item.row
16
+ .col-sm-3.bold Process Name
17
+ .col-sm-9= "#{worker.process_name} (PID: #{worker.pid})"
18
+ %li.list-group-item.row
19
+ .col-sm-3.bold Subscriber Classes
20
+ .col-sm-9= Array.wrap(worker.worker_classes).join("<br/>").html_safe
21
+ %li.list-group-item.row
22
+ .col-sm-3.bold Started Time
23
+ .col-sm-9= worker.started_at.strftime("%m/%d/%Y %I:%M%p")
24
+ - if worker.stopped_at
25
+ %li.list-group-item.row
26
+ .col-sm-3.bold Stopped Time
27
+ .col-sm-9= worker.stopped_at.strftime("%m/%d/%Y %I:%M%p")
28
+ %li.list-group-item.row
29
+ .col-sm-3.bold
30
+ %a{href: "#{root_path}workers/#{worker.id}/messages"} Messages Processed
31
+ .col-sm-9
32
+ %a{href: "#{root_path}workers/#{worker.id}/messages"}= worker.job_count
33
+ &nbsp;
34
+ (
35
+ %span.text-success #{worker.success_count} Succeeded
36
+ \/
37
+ %span.text-warning #{worker.failed_count} Failed
38
+ )
39
+ - if worker.executing?
40
+ %li.list-group-item.row
41
+ .col-sm-3.bold
42
+ %a{href: "#{root_path}messages/#{worker.current_message['_id']}"} Current Job
43
+ .col-sm-9
44
+ = worker.current_message[:subscriber_class]
45
+ %li.list-group-item.row
46
+ .col-sm-3.bold Current Payload
47
+ .col-sm-9
48
+ %pre!= AwesomePrint::Inspector.new(html:true, sort_keys: true, index: false).awesome(worker.current_message[:payload])
49
+
50
+
51
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: banter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Honest Company
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-07-08 00:00:00.000000000 Z
14
+ date: 2014-07-15 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -217,17 +217,34 @@ files:
217
217
  - lib/banter/server/subscriber_server.rb
218
218
  - lib/banter/subscriber.rb
219
219
  - lib/banter/version.rb
220
+ - lib/banter/web.rb
221
+ - lib/banter/web/application.rb
222
+ - lib/banter/web/helpers.rb
223
+ - lib/banter/web/models/banter_message.rb
224
+ - lib/banter/web/models/banter_worker.rb
220
225
  - lib/generators/banter/install_generator.rb
221
226
  - lib/generators/banter/templates/banter.yml
222
227
  - spec/banter/cli_spec.rb
223
228
  - spec/banter/configuration_spec.rb
224
229
  - spec/banter/message_spec.rb
230
+ - spec/banter/publisher_spec.rb
225
231
  - spec/banter/rabbit_logger_spec.rb
226
232
  - spec/banter/server/client_queue_listener_spec.rb
227
233
  - spec/banter/server/rabbitmq_subscriber_spec.rb
234
+ - spec/banter/server/subscriber_server_spec.rb
228
235
  - spec/banter/subscriber_spec.rb
236
+ - spec/banter/web/application_spec.rb
229
237
  - spec/config.yml
238
+ - spec/factories/banter_workers.rb
239
+ - spec/mongoid.yml
230
240
  - spec/spec_helper.rb
241
+ - web/assets/stylesheets/banter.css
242
+ - web/views/index.haml
243
+ - web/views/layout.haml
244
+ - web/views/message.haml
245
+ - web/views/messages.haml
246
+ - web/views/subscribers.haml
247
+ - web/views/worker.haml
231
248
  homepage: https://github.com/honest/banter
232
249
  licenses:
233
250
  - MIT
@@ -256,9 +273,14 @@ test_files:
256
273
  - spec/banter/cli_spec.rb
257
274
  - spec/banter/configuration_spec.rb
258
275
  - spec/banter/message_spec.rb
276
+ - spec/banter/publisher_spec.rb
259
277
  - spec/banter/rabbit_logger_spec.rb
260
278
  - spec/banter/server/client_queue_listener_spec.rb
261
279
  - spec/banter/server/rabbitmq_subscriber_spec.rb
280
+ - spec/banter/server/subscriber_server_spec.rb
262
281
  - spec/banter/subscriber_spec.rb
282
+ - spec/banter/web/application_spec.rb
263
283
  - spec/config.yml
284
+ - spec/factories/banter_workers.rb
285
+ - spec/mongoid.yml
264
286
  - spec/spec_helper.rb