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 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