matrixci 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 174b0b0d39b20c4d027a39c2510645219b5a7841
4
- data.tar.gz: 171dbbae934995bb5ead1ba71f02a6e686c3df2c
3
+ metadata.gz: 630548955e066de705c8d02cbc129b184d7bfa44
4
+ data.tar.gz: b44812a793249db1cf6ecc5840225272b574aaf9
5
5
  SHA512:
6
- metadata.gz: 3d198958a82f6fcd6ad71baf67661b0ff132e8632fc6d16212a424e6729e9ecf788d12bee37567f1a305785de16a952db869b450d532a26ec88fdef2546ecd1a
7
- data.tar.gz: bd935d6222953104c064570012aeca4adfc527f9e2be52eb4fb18c1e0bd0ec2f9330a7b952f8cca25b3c26f137064c72188da109eed0eef5c58eaa03802c6cc8
6
+ metadata.gz: b572b6652d5ae691cac3757625ecde564e590c1b1d10b55d1cbcc5b0f037f53b7257a8c6c9bbf8f649eee17a63f273a728c1d920075b7d4d7ce45f87d50b3c9c
7
+ data.tar.gz: 6243fb1337fbe5ffdf858b5afef6de487ce67dbfe75b6fdaa5ec9a96a2d5e9ce8d4d4164c4f9a882f4d02a66690860500462d8a383a790daee4cd09751b99316
data/bin/ciwatch CHANGED
@@ -1,7 +1,69 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'json'
4
+ require 'matrixci'
5
+ require 'rbcurse/core/util/app'
6
+
7
+ class CellRenderer
8
+ attr_accessor :display_length
9
+
10
+ def repaint g, r, c, crow, content, focus_type, selected
11
+ color = $datacolor
12
+ att = NORMAL
13
+ att = REVERSE if selected
14
+ build = JSON.parse(content)
15
+ color = get_color($datacolor, :yellow, :black) if build["color"] == "yellow"
16
+ color = get_color($datacolor, :red, :black) if build["color"] == "red"
17
+ color = get_color($datacolor, :green, :black) if build["color"] == "green"
18
+ g.wattron(Ncurses.COLOR_PAIR(color) | att)
19
+ g.mvwprintw(r, c, "%s", :string, build["str"]);
20
+ g.wattroff(Ncurses.COLOR_PAIR(color) | att)
21
+ rescue JSON::ParserError
22
+ end
23
+ end
24
+
25
+ def get_latest_runs
26
+ builds = []
27
+ MatrixCi::Project.all.each do |project|
28
+ project.all_recent_builds.each do |build|
29
+ builds << build.to_json
30
+ end
31
+ end
32
+
33
+ builds
34
+ end
35
+
36
+ x = App.new do
37
+ header = app_header "MatrixCI", :text_center => "YOLO", :text_right =>"MatrixCI",
38
+ :color => :black, :bgcolor => :white, :attr => :bold
39
+ message "You are in a crowded room. Lots of people are committing code. There is only one obvious exit, q."
40
+
41
+ lb = listbox :list => get_latest_runs, :title => "[ Latest Builds ]", :name => "tasklist", :row => 1, :height => Ncurses.LINES-4, :width => Ncurses.COLS-1
42
+ lb.truncation_required = false
43
+ lb.should_show_focus = false
44
+ lb.cell_renderer CellRenderer.new
45
+
46
+ @form.bind_key("q") { exit }
47
+ @form.bind_key("r") { lb.list get_latest_runs }
48
+ stack :margin_top => 1, :height => FFI::NCurses.LINES-3 do
49
+
50
+ end # stack
51
+ status_line :row => FFI::NCurses.LINES-1
52
+
53
+ while true
54
+ lb.list get_latest_runs
55
+ @form.repaint
56
+ @window.wrefresh
57
+ sleep(1)
58
+ end
59
+ end # app
60
+
3
61
  while true
4
- puts Time.now.utc
5
- system("ci all")
6
- sleep(30)
62
+ x.refresh
63
+ sleep(10)
7
64
  end
65
+ # while true
66
+ # puts Time.now.utc
67
+ # system("ci all")
68
+ # sleep(30)
69
+ # end
data/lib/build.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require File.dirname(__FILE__)+'/adapters/adapter'
2
2
  require 'rainbow'
3
+ require 'json'
3
4
 
4
5
  module MatrixCi
5
6
  class Build
@@ -15,6 +16,12 @@ module MatrixCi
15
16
  @projectname = options[:projectname]
16
17
  end
17
18
 
19
+ def to_json
20
+ str = "%s %10s %10s %40s %25s %15s %s" % [@id, @started.nil? ? "?" : @started[11,8], @projectname, @branch, @committer, @ref, @subject]
21
+
22
+ {:str => str, :highlight => @highlight, :color => running? ? :yellow : successful? ? :green : :red }.to_json
23
+ end
24
+
18
25
  def to_s
19
26
  str = "%s %10s %10s %40s %25s %15s %s" % [@id, @started.nil? ? "?" : @started[11,8], @projectname, @branch, @committer, @ref, @subject]
20
27
 
@@ -1,3 +1,3 @@
1
1
  module Matrixci
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/matrixci.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "rainbow"
22
+ spec.add_dependency "rbcurse-core"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.3"
24
25
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matrixci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oren Mazor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-10 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rbcurse-core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement