judoscale-ruby 1.2.3 → 1.3.0

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: 2fae3b844590300a1534b482400bc785ca8ede997a21ee4d4f93dcc37580666c
4
- data.tar.gz: eceabb91c0e13477bbe68371a0233b6bfa111e5a5048179f2484a37b54da026c
3
+ metadata.gz: f807fadaf66767a7b4317da888d9728a7915962ca94529769ceb16f1e56eb00d
4
+ data.tar.gz: 30476ecf0afa5774c3773c2b2abbd7c258ef1256fe3e0d086d44a6cca07b69ff
5
5
  SHA512:
6
- metadata.gz: 7e070561c1727047cbc3d0cc2cb0e6a5a6334f6d04446e215c57b2f3fe18c6797e5637a3f82a766e9b47ed98fbb4d36ddf6a2e8b7e8f403ca023c527a0c0a714
7
- data.tar.gz: ae5f5739a1b7bdf62ba808dc27ebdcc3fc9208586d61dc12b181d1fcdc9a31b1090774560b43eabf283c74cd2c9d325366be5739bbb8794dcca5fc134afdec91
6
+ metadata.gz: 4d177afb3e4bc1889e8b968d5591bc886e340d9fcd63b9e5139f43019171d483678578ac87e92cedbe30c8750c29d489768026b5fd96bb3d0702ff21812f15fa
7
+ data.tar.gz: 5e75546db2c28f54781d03b9c791731408e45f21a5055cddfe03fac7625131f194a4873fb50bcc5bca194754e035b07b1e6c686bbd0b0d932e0419ca65ae511e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- judoscale-ruby (1.2.3)
4
+ judoscale-ruby (1.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -10,19 +10,19 @@ GEM
10
10
  public_suffix (>= 2.0.2, < 6.0)
11
11
  crack (0.4.5)
12
12
  rexml
13
- debug (1.4.0)
14
- irb (>= 1.3.6)
15
- reline (>= 0.2.7)
13
+ debug (1.7.1)
14
+ irb (>= 1.5.0)
15
+ reline (>= 0.3.1)
16
16
  hashdiff (1.0.1)
17
- io-console (0.5.11)
18
- irb (1.4.1)
17
+ io-console (0.6.0)
18
+ irb (1.6.2)
19
19
  reline (>= 0.3.0)
20
- minitest (5.15.0)
21
- public_suffix (5.0.0)
20
+ minitest (5.17.0)
21
+ public_suffix (5.0.1)
22
22
  rake (13.0.6)
23
23
  rake-release (1.3.0)
24
24
  bundler (>= 1.11, < 3)
25
- reline (0.3.1)
25
+ reline (0.3.2)
26
26
  io-console (~> 0.5)
27
27
  rexml (3.2.5)
28
28
  webmock (3.18.1)
@@ -14,14 +14,18 @@ module Judoscale
14
14
 
15
15
  private
16
16
 
17
- def select_rows_silently(sql)
17
+ def run_silently(&block)
18
18
  if Config.instance.log_level && ::ActiveRecord::Base.logger.respond_to?(:silence)
19
- ::ActiveRecord::Base.logger.silence(Config.instance.log_level) { select_rows_tagged(sql) }
19
+ ::ActiveRecord::Base.logger.silence(Config.instance.log_level) { yield }
20
20
  else
21
- select_rows_tagged(sql)
21
+ yield
22
22
  end
23
23
  end
24
24
 
25
+ def select_rows_silently(sql)
26
+ run_silently { select_rows_tagged(sql) }
27
+ end
28
+
25
29
  def select_rows_tagged(sql)
26
30
  if ActiveRecord::Base.logger.respond_to?(:tagged)
27
31
  ActiveRecord::Base.logger.tagged(Config.instance.log_tag) { select_rows(sql) }
@@ -18,11 +18,18 @@ module Judoscale
18
18
 
19
19
  def started_at
20
20
  if @request_start_header
21
- # Heroku sets the header as an integer, measured in milliseconds.
22
- # If nginx is involved, it might be in seconds with fractional milliseconds,
23
- # and it might be preceeded by "t=". We can all cases by removing non-digits
24
- # and treating as milliseconds.
25
- Time.at(@request_start_header.gsub(/\D/, "").to_i / 1000.0)
21
+ # There are several variants of this header. We handle these:
22
+ # - whole milliseconds (Heroku)
23
+ # - whole nanoseconds (Render)
24
+ # - fractional seconds (NGINX)
25
+ # - preceeding "t=" (NGINX)
26
+ value = @request_start_header.gsub(/[^0-9.]/, "").to_f
27
+
28
+ case value
29
+ when 0..100_000_000_000 then Time.at(value)
30
+ when 100_000_000_000..100_000_000_000_000 then Time.at(value / 1000.0)
31
+ else Time.at(value / 1_000_000.0)
32
+ end
26
33
  end
27
34
  end
28
35
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Judoscale
4
- VERSION = "1.2.3"
4
+ VERSION = "1.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judoscale-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam McCrea
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-11-26 00:00:00.000000000 Z
12
+ date: 2023-02-09 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: