xcov 0.1
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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +50 -0
- data/assets/images/file_cpp.png +0 -0
- data/assets/images/file_objc.png +0 -0
- data/assets/images/file_swift.png +0 -0
- data/assets/images/xcov_logo.png +0 -0
- data/assets/javascripts/application.js +1 -0
- data/assets/javascripts/bootstrap.min.js +7 -0
- data/assets/javascripts/jquery.min.js +5 -0
- data/assets/javascripts/main.js +11 -0
- data/assets/stylesheets/application.css +1 -0
- data/assets/stylesheets/bootstrap.min.css +5 -0
- data/assets/stylesheets/main.css +206 -0
- data/assets/stylesheets/opensans.css +24 -0
- data/bin/xcov +6 -0
- data/lib/xcov-core.rb +47 -0
- data/lib/xcov-core/bin/xcov-core +0 -0
- data/lib/xcov-core/version.rb +5 -0
- data/lib/xcov.rb +34 -0
- data/lib/xcov/commands_generator.rb +51 -0
- data/lib/xcov/error_handler.rb +46 -0
- data/lib/xcov/manager.rb +13 -0
- data/lib/xcov/model/base.rb +47 -0
- data/lib/xcov/model/function.rb +28 -0
- data/lib/xcov/model/report.rb +53 -0
- data/lib/xcov/model/source.rb +64 -0
- data/lib/xcov/model/target.rb +48 -0
- data/lib/xcov/options.rb +69 -0
- data/lib/xcov/runner.rb +79 -0
- data/lib/xcov/slack_poster.rb +40 -0
- data/lib/xcov/version.rb +6 -0
- data/views/file.erb +14 -0
- data/views/function.erb +10 -0
- data/views/report.erb +64 -0
- data/views/target.erb +20 -0
- metadata +254 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
module Xcov
|
|
3
|
+
class SlackPoster
|
|
4
|
+
|
|
5
|
+
def run(report)
|
|
6
|
+
return if Xcov.config[:skip_slack]
|
|
7
|
+
return if Xcov.config[:slack_url].nil?
|
|
8
|
+
|
|
9
|
+
require 'slack-notifier'
|
|
10
|
+
notifier = Slack::Notifier.new(Xcov.config[:slack_url])
|
|
11
|
+
notifier.username = 'xcov'
|
|
12
|
+
|
|
13
|
+
if Xcov.config[:slack_channel].to_s.length > 0
|
|
14
|
+
notifier.channel = Xcov.config[:slack_channel]
|
|
15
|
+
notifier.channel = ('#' + notifier.channel) unless ['#', '@'].include?(notifier.channel[0])
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
attachments = []
|
|
19
|
+
|
|
20
|
+
report.targets.each do |target|
|
|
21
|
+
attachments << {
|
|
22
|
+
text: "#{target.name}: #{target.displayable_coverage}",
|
|
23
|
+
color: target.coverage_color,
|
|
24
|
+
short: true
|
|
25
|
+
}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
result = notifier.ping "xCov Coverage Report",
|
|
29
|
+
icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
|
|
30
|
+
attachments: attachments
|
|
31
|
+
|
|
32
|
+
if result.code.to_i == 200
|
|
33
|
+
Helper.log.info 'Successfully sent Slack notification'.green
|
|
34
|
+
else
|
|
35
|
+
Helper.log.error result.to_s.red
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/xcov/version.rb
ADDED
data/views/file.erb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!-- Single file starts here -->
|
|
2
|
+
<div class="row file-row" file-id="<%= @id %>">
|
|
3
|
+
<div class="col-xs-10 col-md-10 col-lg-10">
|
|
4
|
+
<span><img class="file-icon" src="resources/file_<%= @type %>.png"/></span>
|
|
5
|
+
<%= @name %>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="col-xs-2 col-md-2 col-lg-2 text-right">
|
|
8
|
+
<%= @displayable_coverage %> <span><div class="circle-sm" style="background-color: <%= @coverage_color %>;"></div></span>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="functions-wrapper" id="<%= @id %>" style="display: none;">
|
|
12
|
+
<%= @function_templates %>
|
|
13
|
+
</div>
|
|
14
|
+
<!-- Single file ends here -->
|
data/views/function.erb
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!-- Single function starts here-->
|
|
2
|
+
<div class="row function-row">
|
|
3
|
+
<div class="col-xs-10 col-md-10 col-lg-10 function-name">
|
|
4
|
+
<%= @name %>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="col-xs-2 col-md-2 col-lg-2 text-right">
|
|
7
|
+
<%= @displayable_coverage %> <span><div class="circle-sm" style="background-color: <%= @coverage_color %>;"></div></span>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
<!-- Single function ends here -->
|
data/views/report.erb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!--
|
|
3
|
+
Xcov - Xcode code coverage without hassle
|
|
4
|
+
A tool developed by Carlos Vidal @carlostify
|
|
5
|
+
-->
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<meta charset="utf-8">
|
|
9
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
11
|
+
<title>xCov - Code coverage report</title>
|
|
12
|
+
<link rel="stylesheet" media="screen" href="resources/bootstrap.min.css" />
|
|
13
|
+
<link rel="stylesheet" media="screen" href="resources/opensans.css" />
|
|
14
|
+
<link rel="stylesheet" media="all" href="resources/main.css" />
|
|
15
|
+
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
16
|
+
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
17
|
+
<!--[if lt IE 9]>
|
|
18
|
+
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
19
|
+
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
20
|
+
<![endif]-->
|
|
21
|
+
<script src="resources/jquery.min.js"></script>
|
|
22
|
+
<script src="resources/bootstrap.min.js"></script>
|
|
23
|
+
<script src="resources/main.js"></script>
|
|
24
|
+
</head>
|
|
25
|
+
<body>
|
|
26
|
+
<!-- NavBar template starts here -->
|
|
27
|
+
<nav class="navbar navbar-fixed-top navbar-inverse" style=" border-bottom-width: 0px;">
|
|
28
|
+
<div class="container-fluid">
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col-xs-12 col-md-offset-1 col-md-10 col-lg-offset-2 col-lg-8 text-left">
|
|
31
|
+
<img class="logo" src="resources/xcov_logo.png"/>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</nav>
|
|
36
|
+
<!-- NavBar template ends here -->
|
|
37
|
+
<!-- Body template starts here -->
|
|
38
|
+
<div class="container-fluid container-body">
|
|
39
|
+
<!-- Coverage resume starts here -->
|
|
40
|
+
<div class="row coverage-summary">
|
|
41
|
+
<div class="col-md-12 text-center">
|
|
42
|
+
<div class="summary-counter">
|
|
43
|
+
<%= @displayable_coverage %>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="summary-description" style="color: <%= @coverage_color %>;">
|
|
46
|
+
<%= @summary %>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<!-- Coverage resume ends here -->
|
|
51
|
+
<%= @target_templates %>
|
|
52
|
+
<!-- Footer starts here -->
|
|
53
|
+
<div class="row footer">
|
|
54
|
+
<div class="col-xs-12 col-md-offset-1 col-md-10 col-lg-offset-2 col-lg-8 text-center">
|
|
55
|
+
xCov - Xcode coverage reports without hassle - A tool developed by
|
|
56
|
+
<a href="https://github.com/nakiostudio" target="_blank">Carlos Vidal</a> -
|
|
57
|
+
<a href="https://twitter.com/carlostify" target="_blank">@carlostify</a>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
<!-- Footer ends here -->
|
|
61
|
+
</div>
|
|
62
|
+
<!-- Body template ends here -->
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
data/views/target.erb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!-- Target details start here -->
|
|
2
|
+
<div class="row target-details" target-id="<%= @id %>">
|
|
3
|
+
<!-- Target name -->
|
|
4
|
+
<div class="col-xs-9 col-md-offset-1 col-md-8 col-lg-offset-2 col-lg-6 target-name">
|
|
5
|
+
<%= @name %>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="col-xs-3 col-md-2 col-lg-2 text-right target-percentage">
|
|
8
|
+
<%= @displayable_coverage %> <span><div class="circle" style="background-color: <%= @coverage_color %>;"></div></span>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
<!-- Target files -->
|
|
12
|
+
<div class="files-wrapper" id="<%= @id %>" style="display: none;">
|
|
13
|
+
<div class="row target-files">
|
|
14
|
+
<div class="col-xs-12 col-md-offset-1 col-md-10 col-lg-offset-2 col-lg-8">
|
|
15
|
+
<%= @file_templates %>
|
|
16
|
+
</div>
|
|
17
|
+
<!-- File row ends here -->
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<!-- Target details end here -->
|
metadata
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: xcov
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: '0.1'
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Carlos Vidal
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-02-13 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: fastlane_core
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.32.0
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 1.0.0
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 0.32.0
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: slack-notifier
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.3'
|
|
40
|
+
type: :runtime
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.3'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: terminal-table
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: bundler
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
type: :development
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: fastlane
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.25.0
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.25.0
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: rake
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
type: :development
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: rubocop
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 0.35.1
|
|
110
|
+
type: :development
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 0.35.1
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: rspec
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 3.1.0
|
|
124
|
+
type: :development
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: 3.1.0
|
|
131
|
+
- !ruby/object:Gem::Dependency
|
|
132
|
+
name: pry
|
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0'
|
|
138
|
+
type: :development
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - ">="
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: yard
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: 0.8.7.4
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "~>"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: 0.8.7.4
|
|
159
|
+
- !ruby/object:Gem::Dependency
|
|
160
|
+
name: webmock
|
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - "~>"
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: 1.19.0
|
|
166
|
+
type: :development
|
|
167
|
+
prerelease: false
|
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - "~>"
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: 1.19.0
|
|
173
|
+
- !ruby/object:Gem::Dependency
|
|
174
|
+
name: coveralls
|
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - ">="
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '0'
|
|
180
|
+
type: :development
|
|
181
|
+
prerelease: false
|
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - ">="
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '0'
|
|
187
|
+
description: Nice coverage reporting without hassle
|
|
188
|
+
email:
|
|
189
|
+
- nakioparkour@gmail.com
|
|
190
|
+
executables:
|
|
191
|
+
- xcov
|
|
192
|
+
extensions: []
|
|
193
|
+
extra_rdoc_files: []
|
|
194
|
+
files:
|
|
195
|
+
- LICENSE
|
|
196
|
+
- README.md
|
|
197
|
+
- assets/images/file_cpp.png
|
|
198
|
+
- assets/images/file_objc.png
|
|
199
|
+
- assets/images/file_swift.png
|
|
200
|
+
- assets/images/xcov_logo.png
|
|
201
|
+
- assets/javascripts/application.js
|
|
202
|
+
- assets/javascripts/bootstrap.min.js
|
|
203
|
+
- assets/javascripts/jquery.min.js
|
|
204
|
+
- assets/javascripts/main.js
|
|
205
|
+
- assets/stylesheets/application.css
|
|
206
|
+
- assets/stylesheets/bootstrap.min.css
|
|
207
|
+
- assets/stylesheets/main.css
|
|
208
|
+
- assets/stylesheets/opensans.css
|
|
209
|
+
- bin/xcov
|
|
210
|
+
- lib/xcov-core.rb
|
|
211
|
+
- lib/xcov-core/bin/xcov-core
|
|
212
|
+
- lib/xcov-core/version.rb
|
|
213
|
+
- lib/xcov.rb
|
|
214
|
+
- lib/xcov/commands_generator.rb
|
|
215
|
+
- lib/xcov/error_handler.rb
|
|
216
|
+
- lib/xcov/manager.rb
|
|
217
|
+
- lib/xcov/model/base.rb
|
|
218
|
+
- lib/xcov/model/function.rb
|
|
219
|
+
- lib/xcov/model/report.rb
|
|
220
|
+
- lib/xcov/model/source.rb
|
|
221
|
+
- lib/xcov/model/target.rb
|
|
222
|
+
- lib/xcov/options.rb
|
|
223
|
+
- lib/xcov/runner.rb
|
|
224
|
+
- lib/xcov/slack_poster.rb
|
|
225
|
+
- lib/xcov/version.rb
|
|
226
|
+
- views/file.erb
|
|
227
|
+
- views/function.erb
|
|
228
|
+
- views/report.erb
|
|
229
|
+
- views/target.erb
|
|
230
|
+
homepage: https://github.com/nakiostudio/xcov
|
|
231
|
+
licenses:
|
|
232
|
+
- MIT
|
|
233
|
+
metadata: {}
|
|
234
|
+
post_install_message:
|
|
235
|
+
rdoc_options: []
|
|
236
|
+
require_paths:
|
|
237
|
+
- lib
|
|
238
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
|
+
requirements:
|
|
240
|
+
- - ">="
|
|
241
|
+
- !ruby/object:Gem::Version
|
|
242
|
+
version: 2.0.0
|
|
243
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
244
|
+
requirements:
|
|
245
|
+
- - ">="
|
|
246
|
+
- !ruby/object:Gem::Version
|
|
247
|
+
version: '0'
|
|
248
|
+
requirements: []
|
|
249
|
+
rubyforge_project:
|
|
250
|
+
rubygems_version: 2.4.8
|
|
251
|
+
signing_key:
|
|
252
|
+
specification_version: 4
|
|
253
|
+
summary: Nice coverage reporting without hassle
|
|
254
|
+
test_files: []
|