oyencov 0.0.8 → 0.0.9
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 +4 -4
- data/lib/oyencov/background.rb +4 -2
- data/lib/oyencov/configuration.rb +9 -5
- 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 +13 -3
- 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
|
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
|
|
@@ -52,7 +52,8 @@ module OyenCov
|
|
52
52
|
Bundler.root.join(version_clue)
|
53
53
|
elsif defined?(Pathname.pwd) && Pathname.pwd
|
54
54
|
Pathname.pwd.join(version_clue)
|
55
|
-
else
|
55
|
+
else
|
56
|
+
next
|
56
57
|
end
|
57
58
|
|
58
59
|
if File.exist?(version_clue_path)
|
@@ -85,10 +86,13 @@ module OyenCov
|
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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"
|
92
96
|
end
|
93
97
|
|
94
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,17 +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
|
+
|
12
20
|
OyenCov::Logger.log("Hello! Booting from #{__FILE__}")
|
13
|
-
|
14
21
|
OyenCov::Logger.log("Checking Rails existence")
|
22
|
+
|
15
23
|
if defined?(Rails::Railtie) # && ENV["OYENCOV_API_KEY"]
|
16
|
-
OyenCov::Logger.log("
|
24
|
+
OyenCov::Logger.log("Rails::Railtie already present, starting oyencov/railtie")
|
17
25
|
require_relative "oyencov/railtie"
|
26
|
+
else
|
27
|
+
OyenCov::Logger.log("Rails::Railtie absent, cannot start tracking & reporting yet.")
|
18
28
|
end
|
19
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
|