oyencov 0.0.7 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/oyencov/api_connection.rb +2 -2
- data/lib/oyencov/background.rb +4 -2
- data/lib/oyencov/configuration.rb +24 -7
- data/lib/oyencov/puma/plugin/oyencov.rb +16 -1
- data/lib/oyencov/railtie.rb +2 -1
- data/lib/oyencov/version.rb +1 -1
- data/lib/oyencov.rb +14 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 284aeba7dff7bdcad7911b65bf24a3cf2126730ab050e1468e35d68c42241e01
|
4
|
+
data.tar.gz: e88b831a197f736e59f6912d9083d6885b5adb811d80a092bd143f36dcee92f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc0857d3ba42f0fcbb5dcc1806ed19e19577cbafef96f814baaed18e4a8da4fcce0b9d2a75a1408410407e0e55534140b3ed1aeac7ed0fc574b8cfb397daaabd
|
7
|
+
data.tar.gz: d4e63b3c9f0837996ef371509b8935e1ed20b72fd7d7bffd2892e1e276f19241af18763985db8186a8ddbcdec9697e9eee63e1d0449df31af4118570c567d144
|
@@ -28,9 +28,9 @@ module OyenCov
|
|
28
28
|
response = get("/v1/data_submission_clearance")
|
29
29
|
|
30
30
|
if Hash === response.body && response.body["status"] == "ok"
|
31
|
-
|
31
|
+
response.body
|
32
32
|
else
|
33
|
-
|
33
|
+
false
|
34
34
|
end
|
35
35
|
rescue Faraday::Error => e
|
36
36
|
OyenCov::Logger.log(e, 2)
|
data/lib/oyencov/background.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "securerandom"
|
2
2
|
require "singleton"
|
3
3
|
require_relative "api_connection"
|
4
|
+
require_relative "controller_tracking"
|
4
5
|
require_relative "coverage_peek_delta"
|
5
6
|
require_relative "logger"
|
6
7
|
|
@@ -26,8 +27,9 @@ module OyenCov
|
|
26
27
|
def self.start
|
27
28
|
OyenCov::Logger.log(<<~TXT)
|
28
29
|
Env: #{@config.mode}
|
29
|
-
|
30
|
-
|
30
|
+
program_name: #{$PROGRAM_NAME || "nil"}
|
31
|
+
process_type: #{@config.process_type}
|
32
|
+
release/git_commit_sha: #{@config.release}
|
31
33
|
Env vars set: #{ENV.keys.grep(/^OYENCOV_/)}
|
32
34
|
TXT
|
33
35
|
|
@@ -46,13 +46,27 @@ module OyenCov
|
|
46
46
|
|
47
47
|
if release == "" || release.nil?
|
48
48
|
[".source_version", "REVISION"].each do |version_clue|
|
49
|
-
if
|
50
|
-
|
51
|
-
|
49
|
+
version_clue_path = if defined?(Rails.root) && Rails.root
|
50
|
+
Rails.root.join(version_clue)
|
51
|
+
elsif defined?(Bundler.root) && Bundler.root
|
52
|
+
Bundler.root.join(version_clue)
|
53
|
+
elsif defined?(Pathname.pwd) && Pathname.pwd
|
54
|
+
Pathname.pwd.join(version_clue)
|
55
|
+
else
|
56
|
+
next
|
57
|
+
end
|
58
|
+
|
59
|
+
if File.exist?(version_clue_path)
|
60
|
+
return File.read(version_clue_path).strip
|
52
61
|
end
|
53
62
|
end
|
54
63
|
end
|
55
64
|
|
65
|
+
# Last resort, prevent null value.
|
66
|
+
if release == "" || release.nil?
|
67
|
+
release = "-"
|
68
|
+
end
|
69
|
+
|
56
70
|
release
|
57
71
|
end
|
58
72
|
|
@@ -72,10 +86,13 @@ module OyenCov
|
|
72
86
|
end
|
73
87
|
end
|
74
88
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
89
|
+
# If its cluster mode & we are in worker process, puma is at the beginning.
|
90
|
+
# If it's `bundle exec puma` then it comes in the end
|
91
|
+
#
|
92
|
+
# If it's booted up by puma not rails server, `Rails` module wont be defined.
|
93
|
+
# We will just assume puma = rails-server
|
94
|
+
if /^puma/.match?($0) || sliced_program_name == "puma"
|
95
|
+
return "rails-server"
|
79
96
|
end
|
80
97
|
|
81
98
|
# Rails can be server or rake task
|
@@ -2,15 +2,30 @@ require "puma/plugin"
|
|
2
2
|
require_relative "../../background"
|
3
3
|
require_relative "../../logger"
|
4
4
|
|
5
|
-
Puma::Plugin.create do
|
5
|
+
defined?(Puma::Plugin.create) && Puma::Plugin.create do
|
6
6
|
OyenCov::Logger.log("Puma::Plugin.create running...")
|
7
7
|
|
8
8
|
def config(c)
|
9
9
|
OyenCov::Logger.log("Puma::Plugin.create config(c) running...")
|
10
10
|
|
11
|
+
c.on_booted do
|
12
|
+
OyenCov::Logger.log("Puma::Plugin.create config on_booted called")
|
13
|
+
OyenCov::Background.start
|
14
|
+
if defined?(Rails::Railtie)
|
15
|
+
load(File.expand_path("../../railtie.rb", File.dirname(__FILE__)))
|
16
|
+
else
|
17
|
+
OyenCov::Logger.log("on_booted: Railtie undefined 😭")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
11
21
|
c.on_worker_boot do
|
12
22
|
OyenCov::Logger.log("Puma::Plugin.create config on_worker_boot called")
|
13
23
|
OyenCov::Background.start
|
24
|
+
if defined?(Rails::Railtie)
|
25
|
+
load(File.expand_path("../../railtie.rb", File.dirname(__FILE__)))
|
26
|
+
else
|
27
|
+
OyenCov::Logger.log("on_worker_boot: Railtie undefined 😭")
|
28
|
+
end
|
14
29
|
end
|
15
30
|
end
|
16
31
|
end
|
data/lib/oyencov/railtie.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative "logger"
|
|
5
5
|
|
6
6
|
module OyenCov
|
7
7
|
class Railtie < Rails::Railtie
|
8
|
+
# This is only useful when `rails s` is run in lieu of webserver command first.
|
8
9
|
def install_puma_hooks
|
9
10
|
return unless defined?(Puma)
|
10
11
|
OyenCov::Logger.log("Puma defined, installing puma hooks")
|
@@ -15,7 +16,7 @@ module OyenCov
|
|
15
16
|
OyenCov::Logger.log("Load errors: #{e}")
|
16
17
|
end
|
17
18
|
|
18
|
-
#
|
19
|
+
# Cluster mode
|
19
20
|
if defined?(Puma::Plugin)
|
20
21
|
OyenCov::Logger.log("Puma::Plugin defined, installing hooks for CLUSTER MODE")
|
21
22
|
require_relative "puma/plugin/oyencov"
|
data/lib/oyencov/version.rb
CHANGED
data/lib/oyencov.rb
CHANGED
@@ -3,15 +3,27 @@ require_relative "oyencov/simplecov_resultset_translator"
|
|
3
3
|
require_relative "oyencov/version"
|
4
4
|
require_relative "oyencov/logger"
|
5
5
|
|
6
|
-
# For now, support only Rails. We bootstrap from Railtie.
|
6
|
+
# For now, support only Rails. We bootstrap background thread and controller tracking from Railtie.
|
7
7
|
module OyenCov
|
8
8
|
def self.config
|
9
9
|
@config ||= OyenCov::Configuration.new
|
10
10
|
end
|
11
11
|
|
12
|
+
# Sometimes oyencov cant start on their own, maybe when oyencov is loaded
|
13
|
+
# before Rails did.
|
14
|
+
#
|
15
|
+
# For Rails, put `OyenCov.start!` in `config/initializers/oyencov.rb`.
|
16
|
+
def self.start!
|
17
|
+
require_relative "oyencov/railtie"
|
18
|
+
end
|
19
|
+
|
20
|
+
OyenCov::Logger.log("Hello! Booting from #{__FILE__}")
|
12
21
|
OyenCov::Logger.log("Checking Rails existence")
|
22
|
+
|
13
23
|
if defined?(Rails::Railtie) # && ENV["OYENCOV_API_KEY"]
|
14
|
-
OyenCov::Logger.log("
|
24
|
+
OyenCov::Logger.log("Rails::Railtie already present, starting oyencov/railtie")
|
15
25
|
require_relative "oyencov/railtie"
|
26
|
+
else
|
27
|
+
OyenCov::Logger.log("Rails::Railtie absent, cannot start tracking & reporting yet.")
|
16
28
|
end
|
17
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oyencov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anonoz Chong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|