travis-surveillance 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,19 +4,16 @@
4
4
 
5
5
  [![Build Status](https://secure.travis-ci.org/dylanegan/travis-surveillance.png?branch=master)](http://travis-ci.org/dylanegan/travis-surveillance)
6
6
 
7
- ## Installation
7
+ ----------
8
8
 
9
9
  ```
10
10
  $ gem install travis-surveillance
11
+ $ travis-surveillance --projects dylanegan/travis-surveillance
11
12
  ```
12
13
 
13
- ## Usage
14
+ ![](https://github.com/dylanegan/travis-surveillance/raw/master/travis-surveillance-output.png)
14
15
 
15
- ```
16
- travis-surveillance --projects dylanegan/travis-surveillance
17
- ```
18
-
19
- ## License
16
+ ----------
20
17
 
21
18
  Copyright (c) 2012 Dylan Egan
22
19
 
@@ -20,9 +20,6 @@ module Travis
20
20
  :result, :started_at]
21
21
  attr_accessor *ATTRIBUTES
22
22
 
23
- alias_method :status, :result
24
- alias_method :status=, :result=
25
-
26
23
  def initialize(attrs = {})
27
24
  self.attributes = attrs
28
25
 
@@ -36,6 +33,7 @@ module Travis
36
33
 
37
34
  job = Job.new(json.merge({'build' => self}))
38
35
  jobs << job
36
+ jobs.sort_by! { |j| j.id }
39
37
  job
40
38
  end
41
39
 
@@ -44,6 +42,10 @@ module Travis
44
42
  next if value.nil?
45
43
  if key == 'config'
46
44
  config.attributes = value
45
+ elsif key == 'matrix'
46
+ value.each do |job|
47
+ add_job(job)
48
+ end
47
49
  else
48
50
  send("#{key}=", (key[/_at$/] ? Time.parse(value) : value)) if ATTRIBUTES.include?(key.to_sym)
49
51
  end
@@ -51,7 +53,7 @@ module Travis
51
53
  end
52
54
 
53
55
  def building?
54
- status.nil?
56
+ result.nil?
55
57
  end
56
58
 
57
59
  def config
@@ -69,7 +71,7 @@ module Travis
69
71
  end
70
72
 
71
73
  def failed?
72
- !status.nil? && !passed?
74
+ !result.nil? && !passed?
73
75
  end
74
76
 
75
77
  def job_for(id)
@@ -81,7 +83,7 @@ module Travis
81
83
  end
82
84
 
83
85
  def passed?
84
- !status.nil? && status.zero?
86
+ !result.nil? && result.zero?
85
87
  end
86
88
 
87
89
  def state
@@ -94,6 +96,10 @@ module Travis
94
96
  end
95
97
  end
96
98
 
99
+ def url
100
+ @url ||= project.url + "/builds/#{@id}"
101
+ end
102
+
97
103
  private
98
104
 
99
105
  def get_details
@@ -105,7 +111,13 @@ module Travis
105
111
  end
106
112
 
107
113
  def populate
108
- self.attributes = get_details
114
+ self.attributes = get_details unless satisfied?
115
+ end
116
+
117
+ def satisfied?
118
+ ATTRIBUTES.each do |attr|
119
+ return false if ![:finished_at, :result].include?(attr) && send(attr).nil?
120
+ end
109
121
  end
110
122
  end
111
123
  end
@@ -8,6 +8,59 @@ require "travis/surveillance"
8
8
  module Travis
9
9
  module Surveillance
10
10
  module CLI
11
+ class Artist
12
+ attr_accessor :project
13
+
14
+ def initialize(project)
15
+ @project = project
16
+ end
17
+
18
+ def draw
19
+ if project.builds.any? && builds = project.builds.reverse
20
+ print "\x1b[2J\x1b[H"
21
+
22
+ latest = builds.first
23
+
24
+ table = Terminal::Table.new title: "#{project.owner}/#{project.name} (#{project.url})", style: { width: 120 } do |t|
25
+ t << ["Build", "#{latest.number} (#{latest.url})"]
26
+ t << ["Duration", latest.duration] unless latest.building?
27
+ t << ["Branch", latest.branch]
28
+ t << ["Commit", latest.commit]
29
+ t << ["Compare URL", latest.compare_url]
30
+ t << ["Author", latest.author_name]
31
+ t << ["Message", latest.message.length > 80 ? "#{latest.message[0..80]}..." : latest.message]
32
+ end
33
+
34
+ print table
35
+ print "\n\n"
36
+
37
+ table = Terminal::Table.new title: "Build Matrix", headings: ['Job', 'State', 'Duration', 'Runtime', 'ENV'], style: { width: 120 } do |t|
38
+ latest.jobs.each do |job|
39
+ t << [job.number, job.state, job.duration, job.runtime, job.config.env]
40
+ end
41
+ end
42
+
43
+ print table
44
+
45
+ if builds.size > 1
46
+ print "\n\n"
47
+
48
+ table = Terminal::Table.new :title => "Build History", :headings => ['Build', 'State', 'Branch', 'Message', 'Duration'], style: { width: 120 } do |t|
49
+ builds.each do |build|
50
+ next if build == latest
51
+ t << [build.number, build.state, build.branch, (build.message.length > 30 ? "#{build.message[0..30]}..." : build.message), build.duration]
52
+ end
53
+ end
54
+
55
+ print table
56
+ end
57
+ end
58
+
59
+ print "\x1b[H"
60
+ $stdout.flush
61
+ end
62
+ end
63
+
11
64
  class Logger
12
65
  def self.log(data, &block)
13
66
  Scrolls.log(data, &block)
@@ -37,51 +90,11 @@ module Travis
37
90
  end
38
91
 
39
92
  surveyor = Travis::Surveillance::Surveyor.new(Travis::Surveillance::Project.new(project))
40
- project = surveyor.project
93
+ artist = Artist.new(surveyor.project)
94
+ artist.draw
41
95
 
42
96
  surveyor.survey do
43
- if project.builds.any? && builds = project.builds.sort_by { |b| b.id }.reverse
44
- print "\x1b[2J\x1b[H"
45
-
46
- latest = builds.first
47
-
48
- table = Terminal::Table.new title: "#{project.owner}/#{project.name}", style: { width: 120 } do |t|
49
- t << ["Build", latest.number]
50
- t << ["Duration", latest.duration] unless latest.building?
51
- t << ["Branch", latest.branch]
52
- t << ["Commit", latest.commit]
53
- t << ["Compare URL", latest.compare_url]
54
- t << ["Author", latest.author_name]
55
- t << ["Message", latest.message.length > 80 ? "#{latest.message[0..80]} ..." : latest.message]
56
- end
57
-
58
- print table
59
- print "\n\n"
60
-
61
- table = Terminal::Table.new title: "Build Matrix", headings: ['Job', 'State', 'Duration', 'Runtime', 'ENV'], style: { width: 120 } do |t|
62
- latest.jobs.sort_by { |j| j.id }.each do |job|
63
- t << [job.number, job.state, job.duration, job.runtime, job.config.env]
64
- end
65
- end
66
-
67
- print table
68
-
69
- if builds.size > 1
70
- print "\n\n"
71
-
72
- table = Terminal::Table.new :title => "Build History", :headings => ['Build', 'State', 'Branch', 'Message', 'Duration'], style: { width: 120 } do |t|
73
- builds.each do |build|
74
- next if build == latest
75
- t << [build.number, build.state, build.branch, (build.message.length > 30 ? "#{build.message[0..30]} ..." : build.message), build.duration]
76
- end
77
- end
78
-
79
- print table
80
- end
81
- end
82
-
83
- print "\x1b[H"
84
- $stdout.flush
97
+ artist.draw
85
98
  end
86
99
  end
87
100
  end
@@ -19,9 +19,6 @@ module Travis
19
19
  ATTRIBUTES = [:build, :finished_at, :id, :number, :result, :started_at]
20
20
  attr_accessor *ATTRIBUTES
21
21
 
22
- alias_method :status, :result
23
- alias_method :status=, :result=
24
-
25
22
  def initialize(attrs = {})
26
23
  self.attributes = attrs
27
24
 
@@ -54,15 +51,15 @@ module Travis
54
51
  end
55
52
 
56
53
  def failed?
57
- !status.nil? && !passed?
54
+ !result.nil? && !passed?
58
55
  end
59
56
 
60
57
  def passed?
61
- !status.nil? && status.zero?
58
+ !result.nil? && result.zero?
62
59
  end
63
60
 
64
61
  def running?
65
- status.nil?
62
+ result.nil?
66
63
  end
67
64
 
68
65
  def runtime
@@ -96,7 +93,13 @@ module Travis
96
93
  end
97
94
 
98
95
  def populate
99
- self.attributes = get_details
96
+ self.attributes = get_details unless satisfied?
97
+ end
98
+
99
+ def satisfied?
100
+ ATTRIBUTES.each do |attr|
101
+ return false if ![:finished_at, :result].include?(attr) && send(attr).nil?
102
+ end
100
103
  end
101
104
  end
102
105
  end
@@ -1,14 +1,20 @@
1
1
  module Travis
2
2
  module Surveillance
3
3
  class Project
4
- attr_accessor :description, :id, :name, :owner, :slug, :status
4
+ ATTRIBUTES = [:description, :id, :slug]
5
+ attr_accessor *ATTRIBUTES
5
6
 
6
- def initialize(name)
7
- @owner, @name = name.split('/')
8
- @slug = name
7
+ def initialize(slug)
8
+ self.attributes = { 'slug' => slug }
9
9
  populate
10
10
  end
11
11
 
12
+ def attributes=(attrs = {})
13
+ attrs.each do |key, value|
14
+ send("#{key}=", value) if ATTRIBUTES.include?(key.to_sym)
15
+ end
16
+ end
17
+
12
18
  def add_build(json)
13
19
  if build = build_for(json['id'])
14
20
  return build
@@ -16,6 +22,7 @@ module Travis
16
22
 
17
23
  build = Build.new(json.merge({'project' => self}))
18
24
  builds << build
25
+ builds.sort_by! { |b| b.id }
19
26
  build
20
27
  end
21
28
 
@@ -39,6 +46,22 @@ module Travis
39
46
  !status.nil? && status.zero?
40
47
  end
41
48
 
49
+ def name
50
+ @name ||= @slug.split('/')[1]
51
+ end
52
+
53
+ def owner
54
+ @owner ||= @slug.split('/')[0]
55
+ end
56
+
57
+ def status
58
+ builds.last.result if builds.any?
59
+ end
60
+
61
+ def url
62
+ @url ||= "http://travis-ci.org/#{@slug}"
63
+ end
64
+
42
65
  private
43
66
 
44
67
  def get_details
@@ -49,11 +72,24 @@ module Travis
49
72
  end
50
73
  end
51
74
 
75
+ def get_builds
76
+ if Travis::Surveillance.mocking?
77
+ if File.exists?(File.dirname(__FILE__) + "/../../../spec/support/builds/#{slug.gsub('/', '-')}.json")
78
+ JSON.parse(IO.read(File.dirname(__FILE__) + "/../../../spec/support/builds/#{slug.gsub('/', '-')}.json"))
79
+ else
80
+ []
81
+ end
82
+ else
83
+ JSON.parse(open("http://travis-ci.org/#{slug}/builds.json").read)
84
+ end
85
+ end
86
+
52
87
  def populate
53
- details = get_details
54
- @description = details['description']
55
- @id = details['id']
56
- @status = details['last_build_status']
88
+ self.attributes = details = get_details
89
+
90
+ get_builds.reverse.each do |build_json|
91
+ add_build(build_json)
92
+ end if details['last_build_id']
57
93
  end
58
94
  end
59
95
  end
@@ -1,7 +1,7 @@
1
1
  require "json"
2
2
  require "open-uri"
3
3
 
4
- gem "pusher-client-merman"
4
+ gem "pusher-client-merman" # https://github.com/pusher/pusher-ruby-client/issues/4
5
5
  require "pusher-client"
6
6
  PusherClient.logger.level = Logger::INFO
7
7
 
@@ -78,7 +78,6 @@ module Travis
78
78
 
79
79
  Travis::Surveillance.log({ surveyor: true, build: true, finished: true, id: build.id, number: build.number })
80
80
  build.attributes = json['build']
81
- @project.status = build.status
82
81
  end
83
82
 
84
83
  def payload_to_job_started(payload)
@@ -1,5 +1,5 @@
1
1
  module Travis
2
2
  module Surveillance
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -0,0 +1,16 @@
1
+ {
2
+ "id":11,
3
+ "number":"1",
4
+ "config":{
5
+ "language":"ruby"
6
+ },
7
+ "started_at":"2012-08-04T13:28:29Z",
8
+ "commit":"af0d1c46e019ff61f1faaba7003ebf912ab245d6",
9
+ "branch":"master",
10
+ "message":"Test",
11
+ "compare_url":"https://github.com/dylanegan/travis-surveillance/compare/74791a0faacf...af0d1c46e019",
12
+ "committed_at":"2012-08-04T13:28:22Z",
13
+ "author_name":"Dylan Egan",
14
+ "committer_name":"Dylan Egan",
15
+ "result":0
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "id":12,
3
+ "number":"2",
4
+ "config":{
5
+ "language":"ruby"
6
+ },
7
+ "started_at":"2012-08-04T13:38:29Z",
8
+ "commit":"asklj23289dd0983212019dhkjsdlkj290820329",
9
+ "branch":"master",
10
+ "message":"Second Build",
11
+ "compare_url":"https://github.com/dylanegan/travis-surveillance/compare/af0d1c46e019...asklj23289dd",
12
+ "committed_at":"2012-08-04T13:38:22Z",
13
+ "author_name":"Dylan Egan",
14
+ "committer_name":"Dylan Egan",
15
+ "result":0
16
+ }
@@ -0,0 +1,39 @@
1
+ [{
2
+ "id":11,
3
+ "number":"1",
4
+ "config":{
5
+ "language":"ruby"
6
+ },
7
+ "started_at":"2012-08-04T13:28:29Z",
8
+ "commit":"af0d1c46e019ff61f1faaba7003ebf912ab245d6",
9
+ "branch":"master",
10
+ "message":"Test",
11
+ "compare_url":"https://github.com/dylanegan/travis-surveillance/compare/74791a0faacf...af0d1c46e019",
12
+ "committed_at":"2012-08-04T13:28:22Z",
13
+ "author_name":"Dylan Egan",
14
+ "committer_name":"Dylan Egan",
15
+ "result":0,
16
+ "matrix": [{
17
+ "id":11,
18
+ "number":"11.1"
19
+ }]
20
+ }, {
21
+ "id":12,
22
+ "number":"2",
23
+ "config":{
24
+ "language":"ruby"
25
+ },
26
+ "started_at":"2012-08-04T13:38:29Z",
27
+ "commit":"asklj23289dd0983212019dhkjsdlkj290820329",
28
+ "branch":"master",
29
+ "message":"Second Build",
30
+ "compare_url":"https://github.com/dylanegan/travis-surveillance/compare/af0d1c46e019...asklj23289dd",
31
+ "committed_at":"2012-08-04T13:38:22Z",
32
+ "author_name":"Dylan Egan",
33
+ "committer_name":"Dylan Egan",
34
+ "result":0,
35
+ "matrix": [{
36
+ "id":12,
37
+ "number":"12.1"
38
+ }]
39
+ }]
@@ -0,0 +1,10 @@
1
+ {
2
+ "id":11,
3
+ "number":"11.2",
4
+ "started_at":"2012-08-04T13:38:29Z",
5
+ "config": {
6
+ "env":"NO_SIMPLECOV=true",
7
+ "rvm":"1.9.2"
8
+ },
9
+ "result":0
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "id":12,
3
+ "number":"12.1",
4
+ "started_at":"2012-08-04T13:38:29Z",
5
+ "config": {
6
+ "env":"NO_SIMPLECOV=true",
7
+ "rvm":"1.9.2"
8
+ },
9
+ "result":0
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id":11,
3
+ "slug":"dylanegan/travis-surveillance-existing",
4
+ "description":"",
5
+ "public_key":"-----BEGIN RSA PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPeL3PD+uSXgaF4bvK4BMfCB3g\nple4P8PD+klPMQi3FTjXgyzPqsbiTaeKka0WNtmd+BXKIdczxrbjqNIAPurE3NeT\nM8aPbnkW0HNZ+oL1AsZveUyxjwMqN6iwrPbuLEKnueSpTcBOPBk3TY7Lec/HmlPV\n2PZM4LHOgmFA1P29pwIDAQAB\n-----END RSA PUBLIC KEY-----\n",
6
+ "last_build_id":11,
7
+ "last_build_number":"1",
8
+ "last_build_status":0,
9
+ "last_build_result":0,
10
+ "last_build_duration":113,
11
+ "last_build_language":null,
12
+ "last_build_started_at":"2012-08-03T09:13:51Z",
13
+ "last_build_finished_at":"2012-08-03T09:14:31Z"
14
+ }
@@ -4,6 +4,7 @@
4
4
  "number":"1",
5
5
  "result":null,
6
6
  "matrix": [{
7
+ "id":1,
7
8
  "number":"1.1"
8
9
  }]
9
10
  },
@@ -54,6 +54,22 @@ describe Travis::Surveillance::Build do
54
54
  it "should have a started_at" do
55
55
  @build.started_at.must_equal Time.parse("2012-08-04T13:28:29Z")
56
56
  end
57
+
58
+ it "should have a url" do
59
+ @build.url.must_equal "http://travis-ci.org/dylanegan/travis-surveillance/builds/1"
60
+ end
61
+ end
62
+
63
+ describe "with history" do
64
+ before do
65
+ @history = Travis::Surveillance::Project.new("dylanegan/travis-surveillance-existing")
66
+ @build = @history.add_build({'id' => 11})
67
+ end
68
+
69
+ it "should have jobs" do
70
+ @build.jobs.wont_be_empty
71
+ @build.jobs.first.id.must_equal 11
72
+ end
57
73
  end
58
74
 
59
75
  describe "a finished build" do
@@ -71,15 +87,15 @@ describe Travis::Surveillance::Build do
71
87
  @build.finished_at.must_equal Time.parse("2012-08-04T13:28:59Z")
72
88
  end
73
89
 
74
- it "should have a status" do
75
- @build.status.must_equal 1
90
+ it "should have a result" do
91
+ @build.result.must_equal 1
76
92
  end
77
93
  end
78
94
 
79
- describe "status" do
95
+ describe "result" do
80
96
  describe "when nil" do
81
97
  before do
82
- @build.status = nil
98
+ @build.result = nil
83
99
  end
84
100
 
85
101
  it "should be building" do
@@ -91,7 +107,7 @@ describe Travis::Surveillance::Build do
91
107
 
92
108
  describe "when zero" do
93
109
  before do
94
- @build.status = 0
110
+ @build.result = 0
95
111
  end
96
112
 
97
113
  it "should have passed" do
@@ -103,7 +119,7 @@ describe Travis::Surveillance::Build do
103
119
 
104
120
  describe "when one" do
105
121
  before do
106
- @build.status = 1
122
+ @build.result = 1
107
123
  end
108
124
 
109
125
  it "should have failed" do
@@ -48,15 +48,15 @@ describe Travis::Surveillance::Job do
48
48
  @job.finished_at.must_equal Time.parse("2012-08-04T13:28:59Z")
49
49
  end
50
50
 
51
- it "should have a status" do
52
- @job.status.must_equal 1
51
+ it "should have a result" do
52
+ @job.result.must_equal 1
53
53
  end
54
54
  end
55
55
 
56
- describe "status" do
56
+ describe "result" do
57
57
  describe "when nil" do
58
58
  before do
59
- @job.status = nil
59
+ @job.result = nil
60
60
  end
61
61
 
62
62
  it "should be running" do
@@ -68,7 +68,7 @@ describe Travis::Surveillance::Job do
68
68
 
69
69
  describe "when zero" do
70
70
  before do
71
- @job.status = 0
71
+ @job.result = 0
72
72
  end
73
73
 
74
74
  it "should have passed" do
@@ -80,7 +80,7 @@ describe Travis::Surveillance::Job do
80
80
 
81
81
  describe "when one" do
82
82
  before do
83
- @job.status = 1
83
+ @job.result = 1
84
84
  end
85
85
 
86
86
  it "should have failed" do
@@ -21,44 +21,54 @@ describe Travis::Surveillance::Project do
21
21
  @project.description.must_equal ""
22
22
  end
23
23
 
24
- it "should have a status" do
25
- @project.status.must_equal 0
24
+ it "should have a url" do
25
+ @project.url.must_equal "http://travis-ci.org/dylanegan/travis-surveillance"
26
+ end
27
+
28
+ describe "with history" do
29
+ before do
30
+ @history = Travis::Surveillance::Project.new("dylanegan/travis-surveillance-existing")
31
+ end
32
+
33
+ it "should have builds" do
34
+ @history.builds.wont_be_empty
35
+ @history.builds.first.id.must_equal 11
36
+ end
37
+
38
+ it "should have a status" do
39
+ @history.status.must_equal 0
40
+ @history.passed?.must_equal true
41
+ end
26
42
  end
27
43
 
28
44
  describe "status" do
29
45
  describe "when nil" do
30
- before do
31
- @project.status = nil
32
- end
33
-
34
46
  it "should be building" do
35
- @project.building?.must_equal true
36
- @project.failed?.must_equal false
37
- @project.passed?.must_equal false
47
+ @project.stub :status, nil do
48
+ @project.building?.must_equal true
49
+ @project.failed?.must_equal false
50
+ @project.passed?.must_equal false
51
+ end
38
52
  end
39
53
  end
40
54
 
41
55
  describe "when zero" do
42
- before do
43
- @project.status = 0
44
- end
45
-
46
56
  it "should have passed" do
47
- @project.building?.must_equal false
48
- @project.failed?.must_equal false
49
- @project.passed?.must_equal true
57
+ @project.stub :status, 0 do
58
+ @project.building?.must_equal false
59
+ @project.failed?.must_equal false
60
+ @project.passed?.must_equal true
61
+ end
50
62
  end
51
63
  end
52
64
 
53
65
  describe "when one" do
54
- before do
55
- @project.status = 1
56
- end
57
-
58
66
  it "should have failed" do
59
- @project.building?.must_equal false
60
- @project.failed?.must_equal true
61
- @project.passed?.must_equal false
67
+ @project.stub :status, 1 do
68
+ @project.building?.must_equal false
69
+ @project.failed?.must_equal true
70
+ @project.passed?.must_equal false
71
+ end
62
72
  end
63
73
  end
64
74
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travis-surveillance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-05 00:00:00.000000000 Z
12
+ date: 2012-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: clamp
@@ -132,8 +132,14 @@ files:
132
132
  - logs/.gitignore
133
133
  - spec/helper.rb
134
134
  - spec/support/builds/1.json
135
+ - spec/support/builds/11.json
136
+ - spec/support/builds/12.json
137
+ - spec/support/builds/dylanegan-travis-surveillance-existing.json
135
138
  - spec/support/jobs/1.json
139
+ - spec/support/jobs/11.json
140
+ - spec/support/jobs/12.json
136
141
  - spec/support/jobs/2.json
142
+ - spec/support/projects/dylanegan-travis-surveillance-existing.json
137
143
  - spec/support/projects/dylanegan-travis-surveillance.json
138
144
  - spec/support/pusher/dylanegan-travis-surveillance-build-finished.json
139
145
  - spec/support/pusher/dylanegan-travis-surveillance-build-started.json
@@ -145,6 +151,7 @@ files:
145
151
  - spec/travis/surveillance/project_spec.rb
146
152
  - spec/travis/surveillance/surveyor_spec.rb
147
153
  - spec/travis/surveillance_spec.rb
154
+ - travis-surveillance-output.png
148
155
  - travis-surveillance.gemspec
149
156
  - travis-surveillance.jpg
150
157
  homepage: https://github.com/dylanegan/travis-surveillance
@@ -174,8 +181,14 @@ summary: Veille sur un projet.
174
181
  test_files:
175
182
  - spec/helper.rb
176
183
  - spec/support/builds/1.json
184
+ - spec/support/builds/11.json
185
+ - spec/support/builds/12.json
186
+ - spec/support/builds/dylanegan-travis-surveillance-existing.json
177
187
  - spec/support/jobs/1.json
188
+ - spec/support/jobs/11.json
189
+ - spec/support/jobs/12.json
178
190
  - spec/support/jobs/2.json
191
+ - spec/support/projects/dylanegan-travis-surveillance-existing.json
179
192
  - spec/support/projects/dylanegan-travis-surveillance.json
180
193
  - spec/support/pusher/dylanegan-travis-surveillance-build-finished.json
181
194
  - spec/support/pusher/dylanegan-travis-surveillance-build-started.json