rookout 0.1.8 → 0.1.13
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/rookout/augs/aug.rb +2 -0
- data/lib/rookout/augs/aug_factory.rb +3 -3
- data/lib/rookout/augs/aug_rate_limiter.rb +3 -3
- data/lib/rookout/augs/locations/location.rb +3 -3
- data/lib/rookout/com_ws/information.rb +1 -1
- data/lib/rookout/commit.rb +1 -1
- data/lib/rookout/exceptions.rb +10 -3
- data/lib/rookout/interface.rb +13 -6
- data/lib/rookout/processor/paths/canopy/maps.rb +286 -286
- data/lib/rookout/processor/paths/canopy/markers.rb +18 -0
- data/lib/rookout/processor/rook_error.rb +5 -2
- data/lib/rookout/services/position.rb +31 -18
- data/lib/rookout/version.rb +1 -1
- metadata +12 -16
- data/Rakefile +0 -92
- data/ext/mkrf_conf.rb +0 -23
- data/rookout.gemspec +0 -39
@@ -154,6 +154,22 @@ module Rookout
|
|
154
154
|
|
155
155
|
attr_reader :level
|
156
156
|
|
157
|
+
def check_result result, first_obj, second_obj
|
158
|
+
return unless [true, false].include? result
|
159
|
+
if result
|
160
|
+
return
|
161
|
+
end
|
162
|
+
|
163
|
+
unless first_obj.nil?
|
164
|
+
raise Exceptions::RookNonPrimitiveObjectType, first_obj.class.to_s unless
|
165
|
+
PRIMITIVES.include? first_obj.class
|
166
|
+
end
|
167
|
+
|
168
|
+
return if second_obj.nil?
|
169
|
+
raise Exceptions::RookNonPrimitiveObjectType, second_obj.class.to_s unless
|
170
|
+
PRIMITIVES.include? second_obj.class
|
171
|
+
end
|
172
|
+
|
157
173
|
def execute_operation first, second
|
158
174
|
# Remove wrapping of objects as needed
|
159
175
|
first_obj = decapsulate_item first
|
@@ -166,6 +182,8 @@ module Rookout
|
|
166
182
|
raise Exceptions::RookExceptionEvaluationFailed.new "", e
|
167
183
|
end
|
168
184
|
|
185
|
+
check_result result, first_obj, second_obj
|
186
|
+
|
169
187
|
# If we don't have a result
|
170
188
|
if result.nil?
|
171
189
|
# Verify objects are primitives
|
@@ -24,13 +24,16 @@ module Rookout
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
attr_reader :message
|
27
|
+
attr_reader :message, :exception, :parameters
|
28
28
|
|
29
29
|
def dumps
|
30
30
|
parameters = NamespaceSerializer.dump Namespaces::RubyObjectNamespace.new(@parameters), false
|
31
31
|
exception = NamespaceSerializer.dump Namespaces::RubyObjectNamespace.new(@exception), false
|
32
32
|
|
33
|
-
backtrace_string =
|
33
|
+
backtrace_string = ""
|
34
|
+
unless @exception.backtrace.nil?
|
35
|
+
backtrace_string = @exception.backtrace.join "\n\t"
|
36
|
+
end
|
34
37
|
backtrace_object = Namespaces::RubyObjectNamespace.new(backtrace_string).tailor_limits!
|
35
38
|
traceback = NamespaceSerializer.dump backtrace_object, false
|
36
39
|
|
@@ -102,13 +102,16 @@ module Rookout
|
|
102
102
|
elsif suggested_match? location, filename
|
103
103
|
warning = Exceptions::RookSourceFilePathSuggestion.new location.filename, filename
|
104
104
|
location.notify_warning warning
|
105
|
+
# Must return nil in order to skip this script
|
106
|
+
nil
|
105
107
|
end
|
106
108
|
end
|
107
109
|
|
108
110
|
#########################################################################################
|
109
111
|
# Utils
|
110
112
|
def exact_match? location_filename, script_filename
|
111
|
-
script_filename.end_with? location_filename
|
113
|
+
return unless script_filename.end_with? location_filename
|
114
|
+
File.basename(script_filename) == File.basename(location_filename)
|
112
115
|
end
|
113
116
|
|
114
117
|
def suggested_match? location, filename
|
@@ -122,6 +125,31 @@ module Rookout
|
|
122
125
|
Digest::SHA2.new(256).hexdigest content
|
123
126
|
end
|
124
127
|
|
128
|
+
def handle_unique_line lines, location, filename
|
129
|
+
first_line = nil
|
130
|
+
second_found = false
|
131
|
+
|
132
|
+
lines.each_with_index do |line, index|
|
133
|
+
if crc_line(line) == location.line_crc
|
134
|
+
if first_line.nil?
|
135
|
+
first_line = index
|
136
|
+
else
|
137
|
+
second_found = true
|
138
|
+
break
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
if first_line && !second_found
|
144
|
+
updated_line = first_line + 1
|
145
|
+
location.notify_warning Processor::RookError.new Exceptions::RookLineMoved.new(filename,
|
146
|
+
location.lineno,
|
147
|
+
updated_line)
|
148
|
+
return updated_line
|
149
|
+
end
|
150
|
+
nil
|
151
|
+
end
|
152
|
+
|
125
153
|
def find_updated_line filename, location
|
126
154
|
return location.lineno if location.line_crc.nil?
|
127
155
|
|
@@ -130,23 +158,8 @@ module Rookout
|
|
130
158
|
return location.lineno if location.line_crc == line_crc32
|
131
159
|
|
132
160
|
if location.line_unique
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
lines.each_with_index do |line, index|
|
137
|
-
if crc_line(line) == location.line_crc
|
138
|
-
if first_line.nil?
|
139
|
-
first_line = index
|
140
|
-
else
|
141
|
-
second_found = true
|
142
|
-
break
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
if first_line && !second_found
|
148
|
-
updated_line = first_line + 1
|
149
|
-
location.notify_warning Exceptions::RookLineMoved.new(filename, location.lineno, updated_line)
|
161
|
+
updated_line = handle_unique_line lines, location, filename
|
162
|
+
unless updated_line.nil?
|
150
163
|
return updated_line
|
151
164
|
end
|
152
165
|
end
|
data/lib/rookout/version.rb
CHANGED
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.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Liran Haimovitch
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: binding_of_caller
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: google-protobuf
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
76
|
-
type: :
|
75
|
+
version: 3.9.2
|
76
|
+
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.9.2
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: google-style
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,14 +183,11 @@ email:
|
|
183
183
|
- support@rookout.com
|
184
184
|
executables:
|
185
185
|
- rookout
|
186
|
-
extensions:
|
187
|
-
- ext/mkrf_conf.rb
|
186
|
+
extensions: []
|
188
187
|
extra_rdoc_files: []
|
189
188
|
files:
|
190
189
|
- LICENSE
|
191
|
-
- Rakefile
|
192
190
|
- bin/rookout
|
193
|
-
- ext/mkrf_conf.rb
|
194
191
|
- lib/rookout.rb
|
195
192
|
- lib/rookout/atfork.rb
|
196
193
|
- lib/rookout/augs/actions/action.rb
|
@@ -251,13 +248,12 @@ files:
|
|
251
248
|
- lib/rookout/user_warnings.rb
|
252
249
|
- lib/rookout/utils.rb
|
253
250
|
- lib/rookout/version.rb
|
254
|
-
- rookout.gemspec
|
255
251
|
homepage: https://rookout.com
|
256
252
|
licenses:
|
257
253
|
- Proprietary
|
258
254
|
metadata:
|
259
255
|
homepage_uri: https://rookout.com
|
260
|
-
post_install_message:
|
256
|
+
post_install_message:
|
261
257
|
rdoc_options: []
|
262
258
|
require_paths:
|
263
259
|
- lib
|
@@ -272,8 +268,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
268
|
- !ruby/object:Gem::Version
|
273
269
|
version: '0'
|
274
270
|
requirements: []
|
275
|
-
rubygems_version: 3.
|
276
|
-
signing_key:
|
271
|
+
rubygems_version: 3.1.2
|
272
|
+
signing_key:
|
277
273
|
specification_version: 4
|
278
274
|
summary: rookout is the Ruby SDK for the Rookout Debugging Platform
|
279
275
|
test_files: []
|
data/Rakefile
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
require "bundler/setup"
|
2
|
-
require "bundler/gem_tasks"
|
3
|
-
|
4
|
-
spec = Gem::Specification.load("rookout.gemspec")
|
5
|
-
|
6
|
-
require "rake/testtask"
|
7
|
-
desc "Run tests."
|
8
|
-
Rake::TestTask.new do |t|
|
9
|
-
t.pattern = "test/**/*_test.rb"
|
10
|
-
t.warning = false
|
11
|
-
end
|
12
|
-
|
13
|
-
desc "Run the CI build"
|
14
|
-
task :ci do
|
15
|
-
header "BUILDING rookout", "#"
|
16
|
-
header "rookout rubocop", "*"
|
17
|
-
require "rubocop/rake_task"
|
18
|
-
RuboCop::RakeTask.new
|
19
|
-
Rake::Task[:rubocop].invoke
|
20
|
-
header "rookout test", "*"
|
21
|
-
Rake::Task[:test].invoke
|
22
|
-
end
|
23
|
-
|
24
|
-
desc "Set commit hash"
|
25
|
-
task :set_commit do
|
26
|
-
header "Setting commit hash in file", "#"
|
27
|
-
write_commit_file read_commit
|
28
|
-
puts "Done!"
|
29
|
-
end
|
30
|
-
|
31
|
-
desc "Bump gem vesrion"
|
32
|
-
task :bump_version do
|
33
|
-
header "Bumpding version", "#"
|
34
|
-
|
35
|
-
version = read_version
|
36
|
-
minor_version = version[0...version.rindex(".")]
|
37
|
-
patch_version = version[version.rindex(".") + 1...version.length]
|
38
|
-
new_patch_version = patch_version.to_i + 1
|
39
|
-
new_version = "#{minor_version}.#{new_patch_version}"
|
40
|
-
|
41
|
-
write_version_file new_version
|
42
|
-
|
43
|
-
puts "Done! New version is #{new_version}"
|
44
|
-
end
|
45
|
-
|
46
|
-
desc "Print version configuration"
|
47
|
-
task :print_version do
|
48
|
-
puts "export ROOK_VERSION=#{read_version}"
|
49
|
-
puts "export ROOK_COMMIT=#{read_commit}"
|
50
|
-
end
|
51
|
-
|
52
|
-
task :default => :test
|
53
|
-
|
54
|
-
def read_version
|
55
|
-
require_relative "lib/rookout/version"
|
56
|
-
Rookout::VERSION
|
57
|
-
end
|
58
|
-
|
59
|
-
def read_commit
|
60
|
-
`git rev-parse HEAD`.strip
|
61
|
-
end
|
62
|
-
|
63
|
-
def write_version_file new_version
|
64
|
-
contents = ""
|
65
|
-
contents += "module Rookout\n"
|
66
|
-
contents += " VERSION = \"#{new_version}\".freeze\n"
|
67
|
-
contents += "end\n"
|
68
|
-
|
69
|
-
f = File.new "lib/rookout/version.rb", "wb"
|
70
|
-
f.write contents
|
71
|
-
f.close
|
72
|
-
end
|
73
|
-
|
74
|
-
def write_commit_file commit
|
75
|
-
contents = ""
|
76
|
-
contents += "module Rookout\n"
|
77
|
-
contents += " COMMIT = \"#{commit}\".freeze\n"
|
78
|
-
contents += "end\n"
|
79
|
-
|
80
|
-
f = File.new "lib/rookout/commit.rb", "wb"
|
81
|
-
f.write contents
|
82
|
-
f.close
|
83
|
-
end
|
84
|
-
|
85
|
-
def header str, token
|
86
|
-
line_length = str.length + 8
|
87
|
-
puts ""
|
88
|
-
puts token * line_length
|
89
|
-
puts "#{token * 3} #{str} #{token * 3}"
|
90
|
-
puts token * line_length
|
91
|
-
puts ""
|
92
|
-
end
|
data/ext/mkrf_conf.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "rubygems/command.rb"
|
3
|
-
require "rubygems/dependency_installer.rb"
|
4
|
-
|
5
|
-
# We override platform comparison to only match source gems
|
6
|
-
class Gem::Platform
|
7
|
-
def self.match platform
|
8
|
-
platform.nil? || platform == Gem::Platform::RUBY
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
inst = Gem::DependencyInstaller.new
|
13
|
-
begin
|
14
|
-
puts "[Rookout] installing appropriate google-protobuf gem"
|
15
|
-
if File.exist? "/etc/alpine-release"
|
16
|
-
installed = inst.install "google-protobuf", [">= 3.0.0", "< 3.10.0"]
|
17
|
-
else
|
18
|
-
installed = inst.install "google-protobuf", ">= 3.0.0"
|
19
|
-
end
|
20
|
-
puts "[Rookout] Installed additional dependencies: #{installed}"
|
21
|
-
rescue
|
22
|
-
exit 1
|
23
|
-
end
|
data/rookout.gemspec
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require_relative "lib/rookout/version"
|
3
|
-
|
4
|
-
Gem::Specification.new do |spec|
|
5
|
-
spec.name = "rookout"
|
6
|
-
spec.version = Rookout::VERSION
|
7
|
-
|
8
|
-
spec.authors = ["Liran Haimovitch"]
|
9
|
-
spec.email = ["support@rookout.com"]
|
10
|
-
spec.description = "rookout is the Ruby SDK for the Rookout Debugging Platform"
|
11
|
-
spec.summary = "rookout is the Ruby SDK for the Rookout Debugging Platform"
|
12
|
-
spec.homepage = "https://rookout.com"
|
13
|
-
spec.license = "Proprietary"
|
14
|
-
|
15
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
16
|
-
|
17
|
-
spec.files = `git ls-files -- ext/* lib/* bin/*`.split("\n") +
|
18
|
-
["lib/rookout/commit.rb", "LICENSE", "Rakefile", "rookout.gemspec"]
|
19
|
-
spec.extensions = ["ext/mkrf_conf.rb"]
|
20
|
-
spec.executables = ["rookout"]
|
21
|
-
|
22
|
-
spec.require_paths = ["lib"]
|
23
|
-
|
24
|
-
spec.required_ruby_version = ">= 2.6"
|
25
|
-
|
26
|
-
spec.add_dependency "binding_of_caller", ">= 0.7"
|
27
|
-
spec.add_dependency "concurrent-ruby", ">= 1.1"
|
28
|
-
spec.add_dependency "websocket-driver", ">= 0.5.0"
|
29
|
-
spec.add_dependency "event_emitter", ">= 0.2.6"
|
30
|
-
|
31
|
-
spec.add_development_dependency "google-protobuf", ">= 3.0.0"
|
32
|
-
spec.add_development_dependency "google-style", ">= 1.24.0"
|
33
|
-
spec.add_development_dependency "minitest", ">= 5.14"
|
34
|
-
spec.add_development_dependency "minitest-autotest", ">= 1.0"
|
35
|
-
spec.add_development_dependency "minitest-focus", ">= 1.1"
|
36
|
-
spec.add_development_dependency "minitest-rg", ">= 5.2"
|
37
|
-
spec.add_development_dependency "autotest-suffix", ">= 1.1"
|
38
|
-
spec.add_development_dependency "rake-compiler", ">= 1.0"
|
39
|
-
end
|