appmap 0.75.0 → 0.77.1
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/.travis.yml +3 -0
- data/CHANGELOG.md +22 -0
- data/Rakefile +1 -1
- data/appmap.gemspec +1 -1
- data/lib/appmap/config.rb +3 -4
- data/lib/appmap/gem_hooks/activejob.yml +4 -0
- data/lib/appmap/gem_hooks/devise.yml +8 -0
- data/lib/appmap/handler.rb +38 -0
- data/lib/appmap/hook.rb +5 -2
- data/lib/appmap/util.rb +0 -8
- data/lib/appmap/version.rb +2 -2
- data/spec/hook_spec.rb +2 -1
- data/test/expectations/openssl_test_key_sign2-3.1.json +52 -0
- data/test/openssl_test.rb +7 -1
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b186892e87c9138a6bd540c82dd899e5d9b4671748ba7219c7d685175509d625
|
4
|
+
data.tar.gz: 0f917bd67d06fab65b568b55c68405206fdf942cd72854a6cff845e021970d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afb2787068a4b7dca1c7b5226f82864c1ce8e5d32c88db7caf554f7c9d6cfbcd1d817e37f1ac691a573d36da4da53ea057c4c3d39c0e985e0969cfed9c63f7ae
|
7
|
+
data.tar.gz: 3b7f117ebe7f4b732cc81bd412bea46dd51b356db78a228561b3b9cf5c581b05d91e081b6cd699ad31d33e82fbd3d31548ccb91478c0fe7648357c947d6ef18a
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## [0.77.1](https://github.com/applandinc/appmap-ruby/compare/v0.77.0...v0.77.1) (2022-03-24)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* Add 3.1 as a supported version ([453f6df](https://github.com/applandinc/appmap-ruby/commit/453f6dfc5de29303fc9cbcf60ce0c3499528711c))
|
7
|
+
|
8
|
+
# [0.77.0](https://github.com/applandinc/appmap-ruby/compare/v0.76.0...v0.77.0) (2022-03-22)
|
9
|
+
|
10
|
+
|
11
|
+
### Features
|
12
|
+
|
13
|
+
* Add label job.perform ([fb5e220](https://github.com/applandinc/appmap-ruby/commit/fb5e220a1f4fd724d8d0178fd4282fed73ff9371))
|
14
|
+
* Add labels for devise ([734ec61](https://github.com/applandinc/appmap-ruby/commit/734ec617aa81d756acf3cb392b5eaabcf9521934))
|
15
|
+
|
16
|
+
# [0.76.0](https://github.com/applandinc/appmap-ruby/compare/v0.75.0...v0.76.0) (2022-03-19)
|
17
|
+
|
18
|
+
|
19
|
+
### Features
|
20
|
+
|
21
|
+
* Autoload hook handlers ([4cc0e70](https://github.com/applandinc/appmap-ruby/commit/4cc0e7003a8c37d3b6c8c8bbc68cffac0335b878))
|
22
|
+
|
1
23
|
# [0.75.0](https://github.com/applandinc/appmap-ruby/compare/v0.74.0...v0.75.0) (2022-03-17)
|
2
24
|
|
3
25
|
|
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ Rake::ExtensionTask.new("appmap") do |ext|
|
|
13
13
|
ext.lib_dir = "lib/appmap"
|
14
14
|
end
|
15
15
|
|
16
|
-
RUBY_VERSIONS=%w[2.6 2.7 3.0].select do |version|
|
16
|
+
RUBY_VERSIONS=%w[2.6 2.7 3.0 3.1].select do |version|
|
17
17
|
travis_ruby_version = ENV['TRAVIS_RUBY_VERSION']
|
18
18
|
next true unless travis_ruby_version
|
19
19
|
|
data/appmap.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency 'reverse_markdown'
|
33
33
|
|
34
34
|
spec.add_development_dependency 'bundler', '>= 1.16'
|
35
|
-
spec.add_development_dependency 'minitest', '
|
35
|
+
spec.add_development_dependency 'minitest', '~> 5.14'
|
36
36
|
spec.add_development_dependency 'pry-byebug'
|
37
37
|
spec.add_development_dependency 'rake', '>= 12.3.3'
|
38
38
|
spec.add_development_dependency 'rdoc'
|
data/lib/appmap/config.rb
CHANGED
@@ -4,8 +4,7 @@ require 'pathname'
|
|
4
4
|
require 'set'
|
5
5
|
require 'yaml'
|
6
6
|
require 'appmap/util'
|
7
|
-
require 'appmap/handler
|
8
|
-
require 'appmap/handler/rails/template'
|
7
|
+
require 'appmap/handler'
|
9
8
|
require 'appmap/service/guesser'
|
10
9
|
require 'appmap/swagger/configuration'
|
11
10
|
require 'appmap/depends/configuration'
|
@@ -206,8 +205,8 @@ module AppMap
|
|
206
205
|
}.compact
|
207
206
|
|
208
207
|
handler_class = hook_decl['handler_class']
|
209
|
-
options[:handler_class] =
|
210
|
-
|
208
|
+
options[:handler_class] = Handler.find(handler_class) if handler_class
|
209
|
+
|
211
210
|
package_hooks(methods, **options)
|
212
211
|
end
|
213
212
|
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- method: Devise::TokenGenerator#generate
|
2
|
+
label: secret
|
3
|
+
- method: Devise.friendly_token
|
4
|
+
label: secret
|
5
|
+
- method: Devise.secure_compare
|
6
|
+
label: security.secure_compare
|
7
|
+
- method: Devise::Strategies::DatabaseAuthenticatable#authenticate!
|
8
|
+
label: security.authentication
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support/inflector/methods'
|
4
|
+
|
5
|
+
module AppMap
|
6
|
+
# Specific hook handler classes and general related utilities.
|
7
|
+
module Handler
|
8
|
+
# Try to find handler module with a given name.
|
9
|
+
#
|
10
|
+
# If the module is not loaded, tries to require the appropriate file
|
11
|
+
# using the usual conventions, eg. `Acme::Handler::AppMap` will try
|
12
|
+
# to require `acme/handler/app_map`, then `acme/handler` and
|
13
|
+
# finally `acme`. Raises NameError if the module could not be loaded
|
14
|
+
# this way.
|
15
|
+
def self.find(name)
|
16
|
+
begin
|
17
|
+
return Object.const_get name
|
18
|
+
rescue NameError
|
19
|
+
try_load ActiveSupport::Inflector.underscore name
|
20
|
+
end
|
21
|
+
Object.const_get name
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.try_load(fname)
|
25
|
+
fname = fname.sub %r{^app_map/}, 'appmap/'
|
26
|
+
fname = fname.split '/'
|
27
|
+
until fname.empty?
|
28
|
+
begin
|
29
|
+
require fname.join '/'
|
30
|
+
return
|
31
|
+
rescue LoadError
|
32
|
+
# pass
|
33
|
+
end
|
34
|
+
fname.pop
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/appmap/hook.rb
CHANGED
@@ -108,8 +108,11 @@ module AppMap
|
|
108
108
|
|
109
109
|
warn "AppMap: Initiating hook for builtin #{class_name} #{method_name}" if LOG
|
110
110
|
|
111
|
-
|
112
|
-
|
111
|
+
begin
|
112
|
+
base_cls = Object.const_get class_name
|
113
|
+
rescue NameError
|
114
|
+
next
|
115
|
+
end
|
113
116
|
|
114
117
|
hook_method = lambda do |entry|
|
115
118
|
cls, method = entry
|
data/lib/appmap/util.rb
CHANGED
@@ -21,14 +21,6 @@ module AppMap
|
|
21
21
|
WHITE = "\e[37m"
|
22
22
|
|
23
23
|
class << self
|
24
|
-
def class_from_string(fq_class, must: true)
|
25
|
-
fq_class.split('::').inject(Object) do |mod, class_name|
|
26
|
-
mod.const_get(class_name)
|
27
|
-
end
|
28
|
-
rescue NameError
|
29
|
-
raise if must
|
30
|
-
end
|
31
|
-
|
32
24
|
def parse_function_name(name)
|
33
25
|
package_tokens = name.split('/')
|
34
26
|
|
data/lib/appmap/version.rb
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
module AppMap
|
4
4
|
URL = 'https://github.com/applandinc/appmap-ruby'
|
5
5
|
|
6
|
-
VERSION = '0.
|
6
|
+
VERSION = '0.77.1'
|
7
7
|
|
8
8
|
APPMAP_FORMAT_VERSION = '1.5.1'
|
9
9
|
|
10
|
-
SUPPORTED_RUBY_VERSIONS = %w[2.6 2.7 3.0].freeze
|
10
|
+
SUPPORTED_RUBY_VERSIONS = %w[2.6 2.7 3.0 3.1].freeze
|
11
11
|
|
12
12
|
DEFAULT_APPMAP_DIR = 'tmp/appmap'.freeze
|
13
13
|
DEFAULT_CONFIG_FILE_PATH = 'appmap.yml'.freeze
|
data/spec/hook_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'rails_spec_helper'
|
@@ -1105,7 +1106,7 @@ describe 'AppMap class Hooking', docker: false do
|
|
1105
1106
|
begin
|
1106
1107
|
tz = ENV['TZ']
|
1107
1108
|
ENV['TZ'] = 'UTC'
|
1108
|
-
Timecop.freeze(Time.utc(
|
1109
|
+
Timecop.freeze(Time.utc(2020, 01, 01)) do
|
1109
1110
|
expect(Time).to receive(:now).at_least(3).times.and_call_original
|
1110
1111
|
expect(InstanceMethod.new.say_the_time).to be
|
1111
1112
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"event": "call",
|
5
|
+
"defined_class": "Example",
|
6
|
+
"method_id": "sign",
|
7
|
+
"path": "lib/openssl_key_sign.rb",
|
8
|
+
"lineno": 10,
|
9
|
+
"static": true,
|
10
|
+
"parameters": [
|
11
|
+
|
12
|
+
],
|
13
|
+
"receiver": {
|
14
|
+
"class": "Module"
|
15
|
+
}
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"id": 2,
|
19
|
+
"event": "call",
|
20
|
+
"defined_class": "OpenSSL::PKey::PKey",
|
21
|
+
"method_id": "sign",
|
22
|
+
"path": "OpenSSL::PKey::PKey#sign",
|
23
|
+
"static": false,
|
24
|
+
"parameters": [
|
25
|
+
{
|
26
|
+
"name": "arg",
|
27
|
+
"class": "Array",
|
28
|
+
"value": "[e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, the document]",
|
29
|
+
"kind": "rest"
|
30
|
+
}
|
31
|
+
],
|
32
|
+
"receiver": {
|
33
|
+
"class": "OpenSSL::PKey::RSA"
|
34
|
+
}
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"id": 3,
|
38
|
+
"event": "return",
|
39
|
+
"parent_id": 2,
|
40
|
+
"return_value": {
|
41
|
+
"class": "String"
|
42
|
+
}
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"id": 4,
|
46
|
+
"event": "return",
|
47
|
+
"parent_id": 1,
|
48
|
+
"return_value": {
|
49
|
+
"class": "String"
|
50
|
+
}
|
51
|
+
}
|
52
|
+
]
|
data/test/openssl_test.rb
CHANGED
@@ -38,8 +38,14 @@ class OpenSSLTest < Minitest::Test
|
|
38
38
|
event
|
39
39
|
end
|
40
40
|
|
41
|
+
# Signature of OpenSSL::PKey::PKey.sign changed in 3.1
|
42
|
+
expected = if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.1')
|
43
|
+
expectation('openssl_test_key_sign2-3.1.json').strip
|
44
|
+
else
|
45
|
+
expectation('openssl_test_key_sign2.json').strip
|
46
|
+
end
|
41
47
|
diff = Diffy::Diff.new(
|
42
|
-
|
48
|
+
expected,
|
43
49
|
JSON.pretty_generate(sanitized_events).strip
|
44
50
|
)
|
45
51
|
assert_equal '', diff.to_s
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.77.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Gilpin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: minitest
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 5.14
|
89
|
+
version: '5.14'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 5.14
|
96
|
+
version: '5.14'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry-byebug
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -369,11 +369,13 @@ files:
|
|
369
369
|
- lib/appmap/gem_hooks/activerecord.yml
|
370
370
|
- lib/appmap/gem_hooks/activesupport.yml
|
371
371
|
- lib/appmap/gem_hooks/cancancan.yml
|
372
|
+
- lib/appmap/gem_hooks/devise.yml
|
372
373
|
- lib/appmap/gem_hooks/rails.yml
|
373
374
|
- lib/appmap/gem_hooks/railties.yml
|
374
375
|
- lib/appmap/gem_hooks/resque.yml
|
375
376
|
- lib/appmap/gem_hooks/sidekiq.yml
|
376
377
|
- lib/appmap/gem_hooks/sprockets.yml
|
378
|
+
- lib/appmap/handler.rb
|
377
379
|
- lib/appmap/handler/function.rb
|
378
380
|
- lib/appmap/handler/net_http.rb
|
379
381
|
- lib/appmap/handler/rails/request_handler.rb
|
@@ -631,6 +633,7 @@ files:
|
|
631
633
|
- test/bundle_vendor_test.rb
|
632
634
|
- test/cucumber_test.rb
|
633
635
|
- test/expectations/openssl_test_key_sign1.json
|
636
|
+
- test/expectations/openssl_test_key_sign2-3.1.json
|
634
637
|
- test/expectations/openssl_test_key_sign2.json
|
635
638
|
- test/fixtures/bundle_vendor_app/Gemfile
|
636
639
|
- test/fixtures/bundle_vendor_app/appmap.yml
|