oyencov 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04c350bbf1306fce55e708d2526c3a470fc332e4439c088e7622cd43cdf2cb89
4
- data.tar.gz: 42218942c44d0f82127071bce83c9fa0ef5207d5e1a242b503144b7e5a656378
3
+ metadata.gz: 284aeba7dff7bdcad7911b65bf24a3cf2126730ab050e1468e35d68c42241e01
4
+ data.tar.gz: e88b831a197f736e59f6912d9083d6885b5adb811d80a092bd143f36dcee92f8
5
5
  SHA512:
6
- metadata.gz: 1440c17139801da23ee1588134628c544524c2bbc2e1ef4be9584a3673d9618d3a3f69ba76c6bb98d072720281bd02e80032696802b420536c964ae0158ebd34
7
- data.tar.gz: d24dd05b6f3b2a0d2caa0e65a3b0cf1cc803d6fdf6f6df1867cee8c2931751ce4f6ba949b15e2bd518e59ea4bfa35e82d9f959c841ef69effb59a6609b826860
6
+ metadata.gz: fc0857d3ba42f0fcbb5dcc1806ed19e19577cbafef96f814baaed18e4a8da4fcce0b9d2a75a1408410407e0e55534140b3ed1aeac7ed0fc574b8cfb397daaabd
7
+ data.tar.gz: d4e63b3c9f0837996ef371509b8935e1ed20b72fd7d7bffd2892e1e276f19241af18763985db8186a8ddbcdec9697e9eee63e1d0449df31af4118570c567d144
@@ -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
- $PROGRAM_NAME: #{$PROGRAM_NAME || "nil"}
30
- @process_type: #{@config.process_type}
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 next
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
- if /^puma/.match?($PROGRAM_NAME)
89
- if defined?(Rails)
90
- return "rails-server"
91
- end
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
@@ -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
- # # Cluster mode
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"
@@ -1,3 +1,3 @@
1
1
  module OyenCov
2
- VERSION = "0.0.8".freeze
2
+ VERSION = "0.0.9".freeze
3
3
  end
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("Starting Railtie")
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.8
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-04-23 00:00:00.000000000 Z
11
+ date: 2024-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday