xcov 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,6 @@
1
+ module Xcov
2
+
3
+ VERSION = "0.1"
4
+ DESCRIPTION = "Nice coverage reporting without hassle"
5
+
6
+ end
@@ -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 -->
@@ -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 -->
@@ -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>
@@ -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: []