appmap 0.80.1 → 0.81.1

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: de1e5a636c3d6e807f11c54a29563e338804f3d101dc4779229596455cd60682
4
- data.tar.gz: cf2aba805fdb427da2a642826f490b0002eb1892dd57a07693b119582a8cd7e1
3
+ metadata.gz: 94d8d2495de74768697429a640c553549c029992969acfeb65c540f2471fbef3
4
+ data.tar.gz: bfbdf261991d859d31ec1f98c95ca9954e08bb1de0fe98ac2973a06c42a3dd18
5
5
  SHA512:
6
- metadata.gz: 6056dda497e69c32a6e7550c76b4b4e40a5cd5405d7244748af4f5f34ed7d6790eafa206470ac8c9a98019fec802944b4cec0cc274451028cf2c5d6f405bd626
7
- data.tar.gz: '039ef96a6ae64cf641e58fb364a2777a65dc507ded48027752ca766c65204659b844cb6408d17a077947968d1fbf006f7c9b29e2fdfe03fc392d90c4495361ff'
6
+ metadata.gz: 993e2ce2c51973a6469fd5f10c66c48c13200c4456f3230748e9d5ffd2b107962cdae7d0b286d59e4ee95aee98957dfa6cd062d0ac4ba5ab1923e99da233edf1
7
+ data.tar.gz: 512cb13c413d394d5237840f8dfec94a0d1d0720cb6c4e164d46e11949078b808b7c25220c3c0fc32a9be74ed4326726ef844588ea346a84242bdca1f87f3056
data/.travis.yml CHANGED
@@ -4,9 +4,8 @@ cache:
4
4
  - bundle
5
5
  - yarn
6
6
 
7
- # NB: if you update the ruby versions here, you also need to update
8
- # them in the Rakefile.
9
7
  rbenv:
8
+ - 2.5
10
9
  - 2.6
11
10
  - 2.7
12
11
  - 3.0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [0.81.1](https://github.com/applandinc/appmap-ruby/compare/v0.81.0...v0.81.1) (2022-04-27)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * AppMap format version is 1.7.0 ([53b3f04](https://github.com/applandinc/appmap-ruby/commit/53b3f04dc4f4a7867f28f5b196b2fadbe7cb6eeb))
7
+ * Avoid return within a block (Ruby 2.5) ([85094fd](https://github.com/applandinc/appmap-ruby/commit/85094fd760b3ea08d343960cf586f4cce210fb07))
8
+
9
+ # [0.81.0](https://github.com/applandinc/appmap-ruby/compare/v0.80.2...v0.81.0) (2022-04-26)
10
+
11
+
12
+ ### Features
13
+
14
+ * Add Ruby 2.5 to the version whitelist ([945f7da](https://github.com/applandinc/appmap-ruby/commit/945f7daaee9685a55f14e8714677661fa5cb4e82))
15
+
16
+ ## [0.80.2](https://github.com/applandinc/appmap-ruby/compare/v0.80.1...v0.80.2) (2022-04-26)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * Ensure that request env key is a string ([721baef](https://github.com/applandinc/appmap-ruby/commit/721baefbb3ba083bf6c5a1b46e6ddffa51feebec))
22
+ * Fix method_display_name ([b05c7fe](https://github.com/applandinc/appmap-ruby/commit/b05c7fe027a981214b224852dc54c5e467e1f116))
23
+
1
24
  ## [0.80.1](https://github.com/applandinc/appmap-ruby/compare/v0.80.0...v0.80.1) (2022-04-08)
2
25
 
3
26
 
@@ -78,7 +78,7 @@ module AppMap
78
78
  end
79
79
 
80
80
  collapse_package = lambda do |package|
81
- return unless package.type == 'package'
81
+ next unless package.type == 'package'
82
82
 
83
83
  while package.children.length == 1 && package.children.all? { |child| child.type == 'package' }
84
84
  child = package.children[0]
@@ -147,7 +147,7 @@ module AppMap
147
147
  else
148
148
  path_obj.inspect
149
149
  end
150
- path = path[Dir.pwd.length + 1..] if path.index(Dir.pwd) == 0
150
+ path = path[Dir.pwd.length + 1..-1] if path.index(Dir.pwd) == 0
151
151
  path
152
152
  end
153
153
  end
@@ -18,6 +18,8 @@ module AppMap
18
18
  method
19
19
  end
20
20
 
21
+ RUBY_MAJOR_VERSION, RUBY_MINOR_VERSION, _ = RUBY_VERSION.split('.').map(&:to_i)
22
+
21
23
  # Single hooked method.
22
24
  # Call #activate to override the original.
23
25
  class Method
@@ -51,18 +53,31 @@ module AppMap
51
53
  if hook_class == Kernel
52
54
  hook_class.define_method_with_arity(hook_method.name, hook_method.arity, hook_method_def)
53
55
  else
54
- hook_class.ancestors.find { |cls| cls.method_defined?(hook_method.name, false) }.tap do |cls|
55
- if cls
56
- cls.define_method_with_arity(hook_method.name, hook_method.arity, hook_method_def)
57
- else
58
- warn "#{hook_method.name} not found on #{hook_class}"
59
- end
56
+ cls = defining_class(hook_class)
57
+ if cls
58
+ cls.define_method_with_arity(hook_method.name, hook_method.arity, hook_method_def)
60
59
  end
61
60
  end
62
61
  end
63
62
 
64
63
  protected
65
64
 
65
+ def defining_class(hook_class)
66
+ cls = \
67
+ if RUBY_MAJOR_VERSION == 2 && RUBY_MINOR_VERSION <= 5
68
+ hook_class
69
+ .ancestors
70
+ .select { |cls| cls.method_defined?(hook_method.name) }
71
+ .find { |cls| cls.instance_method(hook_method.name).owner == cls }
72
+ else
73
+ hook_class.ancestors.find { |cls| cls.method_defined?(hook_method.name, false) }
74
+ end
75
+
76
+ return cls if cls
77
+
78
+ warn "#{hook_method.name} not found on #{hook_class}"
79
+ end
80
+
66
81
  def gettime
67
82
  Process.clock_gettime Process::CLOCK_MONOTONIC
68
83
  end
@@ -78,7 +93,7 @@ module AppMap
78
93
  def method_display_name
79
94
  return @method_display_name if @method_display_name
80
95
 
81
- return @method_display_name = [defined_class, method_symbol, hook_method.name].join if defined_class
96
+ return @method_display_name = [defined_class, '#', hook_method.name].join if defined_class
82
97
 
83
98
  "#{hook_method.name} (class resolution deferred)"
84
99
  end
data/lib/appmap/hook.rb CHANGED
@@ -116,7 +116,7 @@ module AppMap
116
116
 
117
117
  hook_method = lambda do |entry|
118
118
  cls, method = entry
119
- return false if config.never_hook?(cls, method)
119
+ next if config.never_hook?(cls, method)
120
120
 
121
121
  hook.package.handler_class.new(hook.package, cls, method).activate
122
122
  end
data/lib/appmap/open.rb CHANGED
@@ -38,7 +38,7 @@ module AppMap
38
38
  Thread.new do
39
39
  Rack::Handler::WEBrick.run(
40
40
  lambda do |env|
41
- return [200, { 'Content-Type' => 'text/html' }, [page]]
41
+ [200, { 'Content-Type' => 'text/html' }, [page]]
42
42
  end,
43
43
  :Port => 0
44
44
  ) do |server|
data/lib/appmap/rspec.rb CHANGED
@@ -78,7 +78,7 @@ module AppMap
78
78
  super
79
79
 
80
80
  webdriver_port = lambda do
81
- return unless defined?(page) && page&.driver
81
+ next unless defined?(page) && page&.driver
82
82
 
83
83
  # This is the ugliest thing ever but I don't want to lose it.
84
84
  # All the WebDriver calls are getting app-mapped and it's really unclear
@@ -15,8 +15,8 @@ module AppMap
15
15
 
16
16
  def perform
17
17
  to_markdown = lambda do |obj|
18
- return obj.each(&to_markdown) if obj.is_a?(Array)
19
- return unless obj.is_a?(Hash)
18
+ next obj.each(&to_markdown) if obj.is_a?(Array)
19
+ next unless obj.is_a?(Hash)
20
20
 
21
21
  description = obj['description']
22
22
  obj['description'] = converter.(description) if description
@@ -10,8 +10,8 @@ module AppMap
10
10
  def perform
11
11
  clean_only = nil
12
12
  clean = lambda do |obj, properties = %w[description example]|
13
- return obj.each(&clean_only.(properties)) if obj.is_a?(Array)
14
- return unless obj.is_a?(Hash)
13
+ next obj.each(&clean_only.(properties)) if obj.is_a?(Array)
14
+ next unless obj.is_a?(Hash)
15
15
 
16
16
  properties.each { |property| obj.delete property }
17
17
 
data/lib/appmap/util.rb CHANGED
@@ -122,7 +122,7 @@ module AppMap
122
122
  # Apparently, it's following the CGI spec in doing so.
123
123
  # https://datatracker.ietf.org/doc/html/rfc3875#section-4.1.18
124
124
  matching_headers = env
125
- .select { |k,v| k.start_with? 'HTTP_' }
125
+ .select { |k,v| k.to_s.start_with? 'HTTP_' }
126
126
  .merge(
127
127
  'CONTENT_TYPE' => env['CONTENT_TYPE'],
128
128
  'CONTENT_LENGTH' => env['CONTENT_LENGTH'],
@@ -3,11 +3,11 @@
3
3
  module AppMap
4
4
  URL = 'https://github.com/applandinc/appmap-ruby'
5
5
 
6
- VERSION = '0.80.1'
6
+ VERSION = '0.81.1'
7
7
 
8
- APPMAP_FORMAT_VERSION = '1.5.1'
8
+ APPMAP_FORMAT_VERSION = '1.7.0'
9
9
 
10
- SUPPORTED_RUBY_VERSIONS = %w[2.6 2.7 3.0 3.1].freeze
10
+ SUPPORTED_RUBY_VERSIONS = %w[2.5 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
@@ -110,12 +110,14 @@ describe 'Depends API' do
110
110
 
111
111
  describe 'smoke test' do
112
112
  around do |test|
113
- @minitest_test_command_method = AppMap.configuration.depends_config.minitest_test_command_method
114
- AppMap.configuration.depends_config.minitest_test_command_method = 'AppMap::Depends::APISpec.minitest_test_command'
113
+ begin
114
+ @minitest_test_command_method = AppMap.configuration.depends_config.minitest_test_command_method
115
+ AppMap.configuration.depends_config.minitest_test_command_method = 'AppMap::Depends::APISpec.minitest_test_command'
115
116
 
116
- test.call
117
- ensure
118
- AppMap.configuration.depends_config.minitest_test_command_method = @minitest_test_command
117
+ test.call
118
+ ensure
119
+ AppMap.configuration.depends_config.minitest_test_command_method = @minitest_test_command
120
+ end
119
121
  end
120
122
 
121
123
  it 'passes a smoke test' do
@@ -125,20 +127,22 @@ describe 'Depends API' do
125
127
 
126
128
  describe 'configuration settings' do
127
129
  it 'can all be modified' do
128
- defaults = {}
129
-
130
- %i[rspec minitest].each do |framework|
131
- %i[environment_method select_tests_method test_command_method].each do |setting|
132
- full_setting = [ framework, setting ].join('_').to_sym
133
- defaults[full_setting] = AppMap.configuration.depends_config.send(full_setting)
134
- AppMap.configuration.depends_config.send("#{full_setting}=", "AppMap::Depends::APISpec.#{full_setting}")
130
+ begin
131
+ defaults = {}
132
+
133
+ %i[rspec minitest].each do |framework|
134
+ %i[environment_method select_tests_method test_command_method].each do |setting|
135
+ full_setting = [ framework, setting ].join('_').to_sym
136
+ defaults[full_setting] = AppMap.configuration.depends_config.send(full_setting)
137
+ AppMap.configuration.depends_config.send("#{full_setting}=", "AppMap::Depends::APISpec.#{full_setting}")
138
+ end
135
139
  end
136
- end
137
140
 
138
- run_tests
139
- ensure
140
- defaults.keys.each do |setting|
141
- AppMap.configuration.depends_config.send("#{setting}=", defaults[setting])
141
+ run_tests
142
+ ensure
143
+ defaults.keys.each do |setting|
144
+ AppMap.configuration.depends_config.send("#{setting}=", defaults[setting])
145
+ end
142
146
  end
143
147
  end
144
148
  end
@@ -38,7 +38,7 @@ describe 'AppMap::Handler::Eval' do
38
38
  # a la Ruby 2.6.3 ruby-token.rb
39
39
  # token_c = eval("class #{token_n} < #{super_token}; end; #{token_n}")
40
40
  it 'can define a new class' do
41
- num = (Random.random_number * 10_000).to_i
41
+ num = (Random.new.random_number * 10_000).to_i
42
42
  class_name = "Cls_#{num}"
43
43
  m = ClassMaker
44
44
  cls = nil
data/spec/hook_spec.rb CHANGED
@@ -751,9 +751,11 @@ describe 'AppMap class Hooking' do
751
751
  :lineno: 9
752
752
  YAML
753
753
  test_hook_behavior 'spec/fixtures/hook/exception_method.rb', events_yaml do
754
- ExceptionMethod.new.raise_exception
755
- rescue
756
- # don't let the exception fail the test
754
+ begin
755
+ ExceptionMethod.new.raise_exception
756
+ rescue
757
+ # don't let the exception fail the test
758
+ end
757
759
  end
758
760
  end
759
761
 
@@ -781,9 +783,11 @@ describe 'AppMap class Hooking' do
781
783
  :lineno: 59
782
784
  YAML
783
785
  test_hook_behavior 'spec/fixtures/hook/exception_method.rb', events_yaml do
784
- ExceptionMethod.new.raise_illegal_utf8_message
785
- rescue
786
- # don't let the exception fail the test
786
+ begin
787
+ ExceptionMethod.new.raise_illegal_utf8_message
788
+ rescue
789
+ # don't let the exception fail the test
790
+ end
787
791
  end
788
792
  end
789
793
 
@@ -18,7 +18,7 @@ class TestRailsApp
18
18
  attr_reader :fixture_dir
19
19
 
20
20
  def run_cmd(cmd, env = {})
21
- run_process method(:system), cmd, env, exception: true
21
+ run_process method(:system), cmd, env
22
22
  end
23
23
 
24
24
  def spawn_cmd(cmd, env = {})
@@ -33,7 +33,7 @@ class TestRailsApp
33
33
 
34
34
  def database_name
35
35
  # This is used locally too, so make the name nice and unique.
36
- @database_name ||= "appland-rails-test-#{Random.bytes(8).unpack1('h*')}"
36
+ @database_name ||= "appland-rails-test-#{Random.new.bytes(8).unpack1('h*')}"
37
37
  end
38
38
 
39
39
  def bundle
@@ -18,10 +18,12 @@ describe 'remote recording', :order => :defined do
18
18
  uri = URI("http://localhost:#{@service_port}/health")
19
19
 
20
20
  100.times do
21
- Net::HTTP.get(uri)
22
- break
23
- rescue Errno::ECONNREFUSED
24
- sleep 0.1
21
+ begin
22
+ Net::HTTP.get(uri)
23
+ break
24
+ rescue Errno::ECONNREFUSED
25
+ sleep 0.1
26
+ end
25
27
  end
26
28
  end
27
29
 
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.80.1
4
+ version: 0.81.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-04-08 00:00:00.000000000 Z
11
+ date: 2022-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport