rookout 0.1.48 → 0.1.50

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: 9b33fdba32a87693bf2468a34dff9c911de6ba8188424c82f00733589ac76deb
4
- data.tar.gz: bd7cabaa4a8a79820f5d2b3dadf7ac8cb6e98dd2db834e9e7290af66aab32ebf
3
+ metadata.gz: 72f208b3a47ef61e59b2123afe3e666a2f3efa8295ddec10950e221e5547770a
4
+ data.tar.gz: 216a478be4998de21db6b2df156123d6cde587a54369914d93ba2f3ef8f9b5a7
5
5
  SHA512:
6
- metadata.gz: b488bc42bb1f2b96218c9b703a524f53caf584f096ba180b41cbb5b07ea196045d029bf83a588edfd0d2e1bf21cd97267ad6da19af709eeaa2e241624e8c68af
7
- data.tar.gz: cff6c76cb72cff0b3114a81f3939c68c480be5d0df69cd656122838c289f70bb5847f350ab5955243ffce5507471688b6d147c69f5e9d16639c75640bb548b17
6
+ metadata.gz: c9c2e1c91cba199a499fb360f519dcce9081f9c5693cf9919aaff369cd2389534900be7b580e03a3b9ef24e91394db0eec9d25e3968163de87a9390aec288392
7
+ data.tar.gz: 476c8d023ae8e04214693c3b929d0dae31bcf364cf23cc443bf3aab2c29bd05f08db4646a366cb54b4b5208d188df22024886bd35421849c73e331db720eb960
@@ -16,6 +16,7 @@ module Rookout
16
16
  @condition = condition
17
17
  @limits_manager = limits_manager
18
18
 
19
+ @executed = false
19
20
  @enabled = true
20
21
  @status = nil
21
22
  @log_cache = []
@@ -34,7 +35,9 @@ module Rookout
34
35
  namespace = create_namespaces frame, extracted
35
36
  return if @condition && !@condition.evaluate(namespace)
36
37
 
37
- @limits_manager.with_limit do
38
+ should_skip_limiters = @condition.nil? && !@executed
39
+ @limits_manager.with_limit should_skip_limiters do
40
+ @executed = true
38
41
  report_id = Utils.uuid
39
42
  Logger.instance.info "Executing aug-\t#{id} (msg ID #{report_id})"
40
43
  @action.execute @id, report_id, namespace, output
@@ -5,13 +5,14 @@ module Rookout
5
5
  @limiters = limiters
6
6
  end
7
7
 
8
- def with_limit start_time = nil
8
+ def with_limit skip_limiters, start_time = nil
9
9
  start_time ||= Time.now
10
10
  can_execute = true
11
11
  after_execute = []
12
12
 
13
13
  @limiters.each do |limiter|
14
- if limiter.before_run start_time
14
+ limiter_passed = limiter.before_run start_time
15
+ if limiter_passed || skip_limiters
15
16
  after_execute.append -> { limiter.after_run start_time }
16
17
  else
17
18
  can_execute = false
@@ -1,3 +1,3 @@
1
1
  module Rookout
2
- COMMIT = "0948600017cccabaa543460e683c8897df62a483".freeze
2
+ COMMIT = "9f3ecb29fbadc0c8f66233c9c44be100a912e577".freeze
3
3
  end
@@ -146,6 +146,13 @@ module Rookout
146
146
  end
147
147
  end
148
148
 
149
+ class RookInvalidPositionException < ToolException
150
+ def initialize filename, line
151
+ super "Invalid code position for TracePoint: #{filename}:#{line}",
152
+ { filename: filename, line: line }
153
+ end
154
+ end
155
+
149
156
  class RookObjectCannotBeSerialized < ToolException
150
157
  def initialize object, message
151
158
  super message, { "class" => object.class.to_s }
@@ -21,6 +21,9 @@ module Rookout
21
21
  begin
22
22
  trace_point.enable target: position.method, target_line: position.lineno
23
23
  rescue RuntimeError, ArgumentError => e
24
+ if e.message.include? "can not enable any hooks"
25
+ raise Exceptions::RookInvalidPositionException.new(aug.filename, position.lineno)
26
+ end
24
27
  raise Exceptions::RookSetTracepointFailed.new(position.lineno, e)
25
28
  end
26
29
 
@@ -1,3 +1,3 @@
1
1
  module Rookout
2
- VERSION = "0.1.48".freeze
2
+ VERSION = "0.1.50".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rookout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.48
4
+ version: 0.1.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liran Haimovitch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-20 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: binding_of_caller
@@ -301,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
301
301
  - !ruby/object:Gem::Version
302
302
  version: '0'
303
303
  requirements: []
304
- rubygems_version: 3.3.7
304
+ rubygems_version: 3.3.26
305
305
  signing_key:
306
306
  specification_version: 4
307
307
  summary: rookout is the Ruby SDK for the Rookout Debugging Platform