coveralls_reborn 0.9.0 → 0.10.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.
@@ -1,15 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
  require 'securerandom'
3
5
 
4
6
  module Coveralls
5
7
  module Configuration
6
-
7
8
  def self.configuration
8
9
  config = {
9
- environment: self.relevant_env,
10
+ environment: relevant_env,
10
11
  git: git
11
12
  }
12
- yml = self.yaml_config
13
+ yml = yaml_config
13
14
  if yml
14
15
  config[:configuration] = yml
15
16
  config[:repo_token] = yml['repo_token'] || yml['repo_secret_token']
@@ -17,7 +18,7 @@ module Coveralls
17
18
  if ENV['COVERALLS_REPO_TOKEN']
18
19
  config[:repo_token] = ENV['COVERALLS_REPO_TOKEN']
19
20
  end
20
- if ENV['COVERALLS_PARALLEL'] && ENV['COVERALLS_PARALLEL'] != "false"
21
+ if ENV['COVERALLS_PARALLEL'] && ENV['COVERALLS_PARALLEL'] != 'false'
21
22
  config[:parallel] = true
22
23
  end
23
24
  if ENV['TRAVIS']
@@ -41,24 +42,24 @@ module Coveralls
41
42
  # standardized env vars
42
43
  set_standard_service_params_for_generic_ci(config)
43
44
 
44
- if service_name = ENV['COVERALLS_SERVICE_NAME']
45
- config[:service_name] = service_name
45
+ if ENV['COVERALLS_SERVICE_NAME']
46
+ config[:service_name] = ENV['COVERALLS_SERVICE_NAME']
46
47
  end
47
48
 
48
49
  config
49
50
  end
50
51
 
51
52
  def self.set_service_params_for_travis(config, service_name)
52
- config[:service_job_id] = ENV['TRAVIS_JOB_ID']
53
+ config[:service_job_id] = ENV['TRAVIS_JOB_ID']
53
54
  config[:service_pull_request] = ENV['TRAVIS_PULL_REQUEST'] unless ENV['TRAVIS_PULL_REQUEST'] == 'false'
54
- config[:service_name] = service_name || 'travis-ci'
55
- config[:service_branch] = ENV['TRAVIS_BRANCH']
55
+ config[:service_name] = service_name || 'travis-ci'
56
+ config[:service_branch] = ENV['TRAVIS_BRANCH']
56
57
  end
57
58
 
58
59
  def self.set_service_params_for_circleci(config)
59
60
  config[:service_name] = 'circleci'
60
61
  config[:service_number] = ENV['CIRCLE_BUILD_NUM']
61
- config[:service_pull_request] = (ENV['CI_PULL_REQUEST'] || "")[/(\d+)$/,1]
62
+ config[:service_pull_request] = (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1]
62
63
  config[:parallel] = ENV['CIRCLE_NODE_TOTAL'].to_i > 1
63
64
  config[:service_job_number] = ENV['CIRCLE_NODE_INDEX']
64
65
  end
@@ -70,19 +71,19 @@ module Coveralls
70
71
  end
71
72
 
72
73
  def self.set_service_params_for_jenkins(config)
73
- config[:service_name] = 'jenkins'
74
- config[:service_number] = ENV['BUILD_NUMBER']
75
- config[:service_branch] = ENV['BRANCH_NAME']
74
+ config[:service_name] = 'jenkins'
75
+ config[:service_number] = ENV['BUILD_NUMBER']
76
+ config[:service_branch] = ENV['BRANCH_NAME']
76
77
  config[:service_pull_request] = ENV['ghprbPullId']
77
78
  end
78
79
 
79
80
  def self.set_service_params_for_appveyor(config)
80
- config[:service_name] = 'appveyor'
81
- config[:service_number] = ENV['APPVEYOR_BUILD_VERSION']
82
- config[:service_branch] = ENV['APPVEYOR_REPO_BRANCH']
83
- config[:commit_sha] = ENV['APPVEYOR_REPO_COMMIT']
84
- repo_name = ENV['APPVEYOR_REPO_NAME']
85
- config[:service_build_url] = 'https://ci.appveyor.com/project/%s/build/%s' % [repo_name, config[:service_number]]
81
+ config[:service_name] = 'appveyor'
82
+ config[:service_number] = ENV['APPVEYOR_BUILD_VERSION']
83
+ config[:service_branch] = ENV['APPVEYOR_REPO_BRANCH']
84
+ config[:commit_sha] = ENV['APPVEYOR_REPO_COMMIT']
85
+ repo_name = ENV['APPVEYOR_REPO_NAME']
86
+ config[:service_build_url] = format('https://ci.appveyor.com/project/%s/build/%s', repo_name, config[:service_number])
86
87
  end
87
88
 
88
89
  def self.set_service_params_for_tddium(config)
@@ -95,11 +96,11 @@ module Coveralls
95
96
  end
96
97
 
97
98
  def self.set_service_params_for_gitlab(config)
98
- config[:service_name] = 'gitlab-ci'
99
- config[:service_job_number] = ENV['CI_BUILD_NAME']
100
- config[:service_job_id] = ENV['CI_BUILD_ID']
101
- config[:service_branch] = ENV['CI_BUILD_REF_NAME']
102
- config[:commit_sha] = ENV['CI_BUILD_REF']
99
+ config[:service_name] = 'gitlab-ci'
100
+ config[:service_job_number] = ENV['CI_BUILD_NAME']
101
+ config[:service_job_id] = ENV['CI_BUILD_ID']
102
+ config[:service_branch] = ENV['CI_BUILD_REF_NAME']
103
+ config[:commit_sha] = ENV['CI_BUILD_REF']
103
104
  end
104
105
 
105
106
  def self.set_service_params_for_coveralls_local(config)
@@ -114,17 +115,16 @@ module Coveralls
114
115
  config[:service_job_id] ||= ENV['CI_JOB_ID']
115
116
  config[:service_build_url] ||= ENV['CI_BUILD_URL']
116
117
  config[:service_branch] ||= ENV['CI_BRANCH']
117
- config[:service_pull_request] ||= (ENV['CI_PULL_REQUEST'] || "")[/(\d+)$/,1]
118
+ config[:service_pull_request] ||= (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1]
118
119
  end
119
120
 
120
121
  def self.yaml_config
121
- if self.configuration_path && File.exist?(self.configuration_path)
122
- YAML::load_file(self.configuration_path)
123
- end
122
+ return unless configuration_path && File.exist?(configuration_path)
123
+ YAML.load_file(configuration_path)
124
124
  end
125
125
 
126
126
  def self.configuration_path
127
- File.expand_path(File.join(self.root, ".coveralls.yml")) if self.root
127
+ File.expand_path(File.join(root, '.coveralls.yml')) if root
128
128
  end
129
129
 
130
130
  def self.root
@@ -136,14 +136,12 @@ module Coveralls
136
136
  end
137
137
 
138
138
  def self.simplecov_root
139
- if defined?(::SimpleCov)
140
- ::SimpleCov.root
141
- end
139
+ ::SimpleCov.root if defined?(::SimpleCov)
142
140
  end
143
141
 
144
142
  def self.rails_root
145
143
  Rails.root.to_s
146
- rescue
144
+ rescue StandardError
147
145
  nil
148
146
  end
149
147
 
@@ -151,44 +149,41 @@ module Coveralls
151
149
  hash = {}
152
150
 
153
151
  Dir.chdir(root) do
154
-
155
152
  hash[:head] = {
156
- id: ENV.fetch("GIT_ID", `git log -1 --pretty=format:'%H'`),
157
- author_name: ENV.fetch("GIT_AUTHOR_NAME", `git log -1 --pretty=format:'%aN'`),
158
- author_email: ENV.fetch("GIT_AUTHOR_EMAIL", `git log -1 --pretty=format:'%ae'`),
159
- committer_name: ENV.fetch("GIT_COMMITTER_NAME", `git log -1 --pretty=format:'%cN'`),
160
- committer_email: ENV.fetch("GIT_COMMITTER_EMAIL", `git log -1 --pretty=format:'%ce'`),
161
- message: ENV.fetch("GIT_MESSAGE", `git log -1 --pretty=format:'%s'`)
153
+ id: ENV.fetch('GIT_ID', `git log -1 --pretty=format:'%H'`),
154
+ author_name: ENV.fetch('GIT_AUTHOR_NAME', `git log -1 --pretty=format:'%aN'`),
155
+ author_email: ENV.fetch('GIT_AUTHOR_EMAIL', `git log -1 --pretty=format:'%ae'`),
156
+ committer_name: ENV.fetch('GIT_COMMITTER_NAME', `git log -1 --pretty=format:'%cN'`),
157
+ committer_email: ENV.fetch('GIT_COMMITTER_EMAIL', `git log -1 --pretty=format:'%ce'`),
158
+ message: ENV.fetch('GIT_MESSAGE', `git log -1 --pretty=format:'%s'`)
162
159
  }
163
160
 
164
161
  # Branch
165
- hash[:branch] = ENV.fetch("GIT_BRANCH", `git rev-parse --abbrev-ref HEAD`)
162
+ hash[:branch] = ENV.fetch('GIT_BRANCH', `git rev-parse --abbrev-ref HEAD`)
166
163
 
167
164
  # Remotes
168
165
  remotes = nil
169
166
  begin
170
167
  remotes = `git remote -v`.split(/\n/).map do |remote|
171
- splits = remote.split(" ").compact
172
- {name: splits[0], url: splits[1]}
168
+ splits = remote.split(' ').compact
169
+ { name: splits[0], url: splits[1] }
173
170
  end.uniq
174
- rescue
171
+ rescue StandardError
175
172
  end
176
173
  hash[:remotes] = remotes
177
-
178
174
  end
179
175
 
180
176
  hash
181
-
182
- rescue Exception => e
183
- Coveralls::Output.puts "Coveralls git error:", color: "red"
184
- Coveralls::Output.puts e.to_s, color: "red"
177
+ rescue StandardError => e
178
+ Coveralls::Output.puts 'Coveralls git error:', color: 'red'
179
+ Coveralls::Output.puts e.to_s, color: 'red'
185
180
  nil
186
181
  end
187
182
 
188
183
  def self.relevant_env
189
184
  hash = {
190
- pwd: self.pwd,
191
- rails_root: self.rails_root,
185
+ pwd: pwd,
186
+ rails_root: rails_root,
192
187
  simplecov_root: simplecov_root,
193
188
  gem_version: VERSION
194
189
  }
@@ -225,6 +220,5 @@ module Coveralls
225
220
 
226
221
  hash
227
222
  end
228
-
229
223
  end
230
224
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Coveralls
2
4
  #
3
5
  # Public: Methods for formatting strings with Term::ANSIColor.
@@ -32,16 +34,19 @@ module Coveralls
32
34
  # Coveralls::Output.no_color = true
33
35
 
34
36
  module Output
35
- attr_accessor :silent, :no_color
36
- attr_writer :output
37
- extend self
37
+ class << self
38
+ attr_accessor :silent, :no_color
39
+ attr_writer :output
40
+ end
41
+
42
+ module_function
38
43
 
39
44
  def output
40
45
  (defined?(@output) && @output) || $stdout
41
46
  end
42
47
 
43
48
  def no_color?
44
- (defined?(@no_color)) && @no_color
49
+ defined?(@no_color) && @no_color
45
50
  end
46
51
 
47
52
  # Public: Formats the given string with the specified color
@@ -87,7 +92,7 @@ module Coveralls
87
92
  # Returns nil.
88
93
  def puts(string, options = {})
89
94
  return if silent?
90
- (options[:output] || output).puts self.format(string, options)
95
+ (options[:output] || output).puts format(string, options)
91
96
  end
92
97
 
93
98
  # Public: Passes .format to Kernel#print
@@ -104,11 +109,11 @@ module Coveralls
104
109
  # Returns nil.
105
110
  def print(string, options = {})
106
111
  return if silent?
107
- (options[:output] || output).print self.format(string, options)
112
+ (options[:output] || output).print format(string, options)
108
113
  end
109
114
 
110
115
  def silent?
111
- ENV["COVERALLS_SILENT"] || (defined?(@silent) && @silent)
116
+ ENV['COVERALLS_SILENT'] || (defined?(@silent) && @silent)
112
117
  end
113
118
  end
114
119
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rake'
2
4
  require 'rake/tasklib'
3
5
 
@@ -5,15 +7,14 @@ module Coveralls
5
7
  class RakeTask < ::Rake::TaskLib
6
8
  include ::Rake::DSL if defined?(::Rake::DSL)
7
9
 
8
- def initialize(*args, &task_block)
10
+ def initialize(*_args)
9
11
  namespace :coveralls do
10
- desc "Push latest coverage results to Coveralls.io"
12
+ desc 'Push latest coverage results to Coveralls.io'
11
13
  task :push do
12
14
  require 'coveralls'
13
15
  Coveralls.push!
14
16
  end
15
17
  end
16
- end # initialize
17
-
18
- end # class
19
- end # module
18
+ end
19
+ end
20
+ end
@@ -1,27 +1,28 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Coveralls
2
4
  module SimpleCov
3
5
  class Formatter
4
-
5
6
  def display_result(result)
6
7
  # Log which files would be submitted.
7
- if result.files.length > 0
8
- Coveralls::Output.puts "[Coveralls] Some handy coverage stats:"
8
+ if !result.files.empty?
9
+ Coveralls::Output.puts '[Coveralls] Some handy coverage stats:'
9
10
  else
10
- Coveralls::Output.puts "[Coveralls] There are no covered files.", color: "yellow"
11
+ Coveralls::Output.puts '[Coveralls] There are no covered files.', color: 'yellow'
11
12
  end
12
13
  result.files.each do |f|
13
- Coveralls::Output.print " * "
14
- Coveralls::Output.print short_filename(f.filename).to_s, color: "cyan"
15
- Coveralls::Output.print " => ", color: "white"
14
+ Coveralls::Output.print ' * '
15
+ Coveralls::Output.print short_filename(f.filename).to_s, color: 'cyan'
16
+ Coveralls::Output.print ' => ', color: 'white'
16
17
  cov = "#{f.covered_percent.round}%"
17
18
  if f.covered_percent > 90
18
- Coveralls::Output.print cov, color: "green"
19
+ Coveralls::Output.print cov, color: 'green'
19
20
  elsif f.covered_percent > 80
20
- Coveralls::Output.print cov, color: "yellow"
21
+ Coveralls::Output.print cov, color: 'yellow'
21
22
  else
22
- Coveralls::Output.print cov, color: "red"
23
+ Coveralls::Output.print cov, color: 'red'
23
24
  end
24
- Coveralls::Output.puts ""
25
+ Coveralls::Output.puts ''
25
26
  end
26
27
  true
27
28
  end
@@ -33,7 +34,7 @@ module Coveralls
33
34
  properties = {}
34
35
 
35
36
  # Get Source
36
- properties[:source] = File.open(file.filename, "rb:utf-8").read
37
+ properties[:source] = File.open(file.filename, 'rb:utf-8').read
37
38
 
38
39
  # Get the root-relative filename
39
40
  properties[:name] = short_filename(file.filename)
@@ -52,50 +53,51 @@ module Coveralls
52
53
  end
53
54
 
54
55
  def format(result)
55
-
56
56
  unless Coveralls.should_run?
57
- if Coveralls.noisy?
58
- display_result result
59
- end
57
+ display_result result if Coveralls.noisy?
60
58
  return
61
59
  end
62
60
 
63
61
  # Post to Coveralls.
64
- API.post_json "jobs",
65
- source_files: get_source_files(result),
66
- test_framework: result.command_name.downcase,
67
- run_at: result.created_at
62
+ API.post_json 'jobs',
63
+ source_files: get_source_files(result),
64
+ test_framework: result.command_name.downcase,
65
+ run_at: result.created_at
68
66
 
69
67
  Coveralls::Output.puts output_message result
70
68
 
71
69
  true
72
-
73
- rescue Exception => e
70
+ rescue StandardError => e
74
71
  display_error e
75
72
  end
76
73
 
77
74
  def display_error(e)
78
- Coveralls::Output.puts "Coveralls encountered an exception:", color: "red"
79
- Coveralls::Output.puts e.class.to_s, color: "red"
80
- Coveralls::Output.puts e.message, color: "red"
81
- e.backtrace.each do |line|
82
- Coveralls::Output.puts line, color: "red"
83
- end if e.backtrace
75
+ Coveralls::Output.puts 'Coveralls encountered an exception:', color: 'red'
76
+ Coveralls::Output.puts e.class.to_s, color: 'red'
77
+ Coveralls::Output.puts e.message, color: 'red'
78
+ if e.backtrace
79
+ e.backtrace.each do |line|
80
+ Coveralls::Output.puts line, color: 'red'
81
+ end
82
+ end
84
83
  if e.respond_to?(:response) && e.response
85
- Coveralls::Output.puts e.response.to_s, color: "red"
84
+ Coveralls::Output.puts e.response.to_s, color: 'red'
86
85
  end
87
86
  false
88
87
  end
89
88
 
90
89
  def output_message(result)
91
- "Coverage is at #{result.covered_percent.round(2) rescue result.covered_percent.round}%.\nCoverage report sent to Coveralls."
90
+ "Coverage is at #{begin
91
+ result.covered_percent.round(2)
92
+ rescue StandardError
93
+ result.covered_percent.round
94
+ end}%.\nCoverage report sent to Coveralls."
92
95
  end
93
96
 
94
97
  def short_filename(filename)
95
- filename = filename.gsub(::SimpleCov.root, '.').gsub(/^\.\//, '') if ::SimpleCov.root
98
+ filename = filename.gsub(::SimpleCov.root, '.').gsub(%r{^\./}, '') if ::SimpleCov.root
96
99
  filename
97
100
  end
98
-
99
101
  end
100
102
  end
101
103
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Coveralls
2
- VERSION = "0.9.0"
4
+ VERSION = '0.10.0'.freeze
3
5
  end
data/lib/coveralls.rb CHANGED
@@ -1,27 +1,30 @@
1
- require "coveralls/version"
2
- require "coveralls/configuration"
3
- require "coveralls/api"
4
- require "coveralls/output"
5
- require "coveralls/simplecov"
1
+ # frozen_string_literal: true
2
+
3
+ require 'coveralls/version'
4
+ require 'coveralls/configuration'
5
+ require 'coveralls/api'
6
+ require 'coveralls/output'
7
+ require 'coveralls/simplecov'
6
8
 
7
9
  module Coveralls
8
- extend self
10
+ class << self
11
+ attr_accessor :adapter, :testing, :noisy, :run_locally
12
+ end
9
13
 
10
14
  class NilFormatter
11
- def format(result)
12
- end
15
+ def format(result); end
13
16
  end
14
17
 
15
- attr_accessor :testing, :noisy, :run_locally
18
+ module_function
16
19
 
17
- def wear!(simplecov_setting=nil, &block)
20
+ def wear!(simplecov_setting = nil, &block)
18
21
  setup!
19
22
  start! simplecov_setting, &block
20
23
  end
21
24
 
22
- def wear_merged!(simplecov_setting=nil, &block)
25
+ def wear_merged!(simplecov_setting = nil, &block)
23
26
  require 'simplecov'
24
- @@adapter = :simplecov
27
+ @adapter = :simplecov
25
28
  ::SimpleCov.formatter = NilFormatter
26
29
  start! simplecov_setting, &block
27
30
  end
@@ -34,68 +37,67 @@ module Coveralls
34
37
 
35
38
  def setup!
36
39
  # Try to load up SimpleCov.
37
- @@adapter = nil
40
+ @adapter = nil
38
41
  if defined?(::SimpleCov)
39
- @@adapter = :simplecov
42
+ @adapter = :simplecov
40
43
  else
41
44
  begin
42
45
  require 'simplecov'
43
- @@adapter = :simplecov if defined?(::SimpleCov)
44
- rescue
46
+ @adapter = :simplecov if defined?(::SimpleCov)
47
+ rescue StandardError
45
48
  end
46
49
  end
47
50
 
48
51
  # Load the appropriate adapter.
49
- if @@adapter == :simplecov
52
+ if @adapter == :simplecov
50
53
  ::SimpleCov.formatter = Coveralls::SimpleCov::Formatter
51
- Coveralls::Output.puts("[Coveralls] Set up the SimpleCov formatter.", color: "green")
54
+ Coveralls::Output.puts('[Coveralls] Set up the SimpleCov formatter.', color: 'green')
52
55
  else
53
- Coveralls::Output.puts("[Coveralls] Couldn't find an appropriate adapter.", color: "red")
56
+ Coveralls::Output.puts("[Coveralls] Couldn't find an appropriate adapter.", color: 'red')
54
57
  end
55
-
56
58
  end
57
59
 
58
60
  def start!(simplecov_setting = 'test_frameworks', &block)
59
- if @@adapter == :simplecov
60
- ::SimpleCov.add_filter 'vendor'
61
-
62
- if simplecov_setting
63
- Coveralls::Output.puts("[Coveralls] Using SimpleCov's '#{simplecov_setting}' settings.", color: "green")
64
- if block_given?
65
- ::SimpleCov.start(simplecov_setting) { instance_eval(&block)}
66
- else
67
- ::SimpleCov.start(simplecov_setting)
68
- end
69
- elsif block
70
- Coveralls::Output.puts("[Coveralls] Using SimpleCov settings defined in block.", color: "green")
71
- ::SimpleCov.start { instance_eval(&block) }
61
+ return if @adapter != :simplecov
62
+
63
+ ::SimpleCov.add_filter 'vendor'
64
+
65
+ if simplecov_setting
66
+ Coveralls::Output.puts("[Coveralls] Using SimpleCov's '#{simplecov_setting}' settings.", color: 'green')
67
+ if block_given?
68
+ ::SimpleCov.start(simplecov_setting) { instance_eval(&block) }
72
69
  else
73
- Coveralls::Output.puts("[Coveralls] Using SimpleCov's default settings.", color: "green")
74
- ::SimpleCov.start
70
+ ::SimpleCov.start(simplecov_setting)
75
71
  end
72
+ elsif block
73
+ Coveralls::Output.puts('[Coveralls] Using SimpleCov settings defined in block.', color: 'green')
74
+ ::SimpleCov.start { instance_eval(&block) }
75
+ else
76
+ Coveralls::Output.puts("[Coveralls] Using SimpleCov's default settings.", color: 'green')
77
+ ::SimpleCov.start
76
78
  end
77
79
  end
78
80
 
79
81
  def should_run?
80
82
  # Fail early if we're not on a CI
81
83
  unless will_run?
82
- Coveralls::Output.puts("[Coveralls] Outside the CI environment, not sending data.", color: "yellow")
84
+ Coveralls::Output.puts('[Coveralls] Outside the CI environment, not sending data.', color: 'yellow')
83
85
  return false
84
86
  end
85
87
 
86
- if ENV["COVERALLS_RUN_LOCALLY"] || (defined?(@run_locally) && @run_locally)
87
- Coveralls::Output.puts("[Coveralls] Creating a new job on Coveralls from local coverage results.", color: "cyan")
88
+ if ENV['COVERALLS_RUN_LOCALLY'] || (defined?(@run_locally) && @run_locally)
89
+ Coveralls::Output.puts('[Coveralls] Creating a new job on Coveralls from local coverage results.', color: 'cyan')
88
90
  end
89
91
 
90
92
  true
91
93
  end
92
94
 
93
95
  def will_run?
94
- ENV["CI"] || ENV["JENKINS_URL"] || ENV['TDDIUM'] ||
95
- ENV["COVERALLS_RUN_LOCALLY"] || (defined?(@testing) && @testing)
96
+ ENV['CI'] || ENV['JENKINS_URL'] || ENV['TDDIUM'] ||
97
+ ENV['COVERALLS_RUN_LOCALLY'] || (defined?(@testing) && @testing)
96
98
  end
97
99
 
98
100
  def noisy?
99
- ENV["COVERALLS_NOISY"] || (defined?(@noisy) && @noisy)
101
+ ENV['COVERALLS_NOISY'] || (defined?(@noisy) && @noisy)
100
102
  end
101
103
  end