appmap 0.27.0 → 0.33.0

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -3
  3. data/CHANGELOG.md +37 -0
  4. data/README.md +170 -29
  5. data/Rakefile +1 -1
  6. data/appmap.gemspec +1 -0
  7. data/exe/appmap +3 -1
  8. data/lib/appmap.rb +54 -38
  9. data/lib/appmap/algorithm/stats.rb +2 -1
  10. data/lib/appmap/class_map.rb +21 -28
  11. data/lib/appmap/command/record.rb +2 -61
  12. data/lib/appmap/config.rb +89 -0
  13. data/lib/appmap/cucumber.rb +89 -0
  14. data/lib/appmap/event.rb +28 -19
  15. data/lib/appmap/hook.rb +56 -128
  16. data/lib/appmap/hook/method.rb +78 -0
  17. data/lib/appmap/metadata.rb +62 -0
  18. data/lib/appmap/middleware/remote_recording.rb +2 -6
  19. data/lib/appmap/minitest.rb +141 -0
  20. data/lib/appmap/open.rb +57 -0
  21. data/lib/appmap/rails/action_handler.rb +7 -7
  22. data/lib/appmap/rails/sql_handler.rb +10 -8
  23. data/lib/appmap/railtie.rb +2 -2
  24. data/lib/appmap/record.rb +27 -0
  25. data/lib/appmap/rspec.rb +9 -37
  26. data/lib/appmap/trace.rb +18 -10
  27. data/lib/appmap/util.rb +59 -0
  28. data/lib/appmap/version.rb +1 -1
  29. data/package-lock.json +3 -3
  30. data/spec/abstract_controller4_base_spec.rb +1 -1
  31. data/spec/abstract_controller_base_spec.rb +9 -2
  32. data/spec/config_spec.rb +3 -3
  33. data/spec/fixtures/hook/compare.rb +7 -0
  34. data/spec/fixtures/hook/singleton_method.rb +54 -0
  35. data/spec/fixtures/rails_users_app/Gemfile +1 -0
  36. data/spec/fixtures/rails_users_app/features/api_users.feature +13 -0
  37. data/spec/fixtures/rails_users_app/features/support/env.rb +4 -0
  38. data/spec/fixtures/rails_users_app/features/support/hooks.rb +11 -0
  39. data/spec/fixtures/rails_users_app/features/support/steps.rb +18 -0
  40. data/spec/hook_spec.rb +228 -53
  41. data/spec/open_spec.rb +19 -0
  42. data/spec/rails_spec_helper.rb +2 -0
  43. data/spec/record_sql_rails_pg_spec.rb +56 -33
  44. data/spec/rspec_feature_metadata_spec.rb +2 -0
  45. data/spec/spec_helper.rb +4 -0
  46. data/spec/util_spec.rb +21 -0
  47. data/test/cli_test.rb +4 -4
  48. data/test/cucumber_test.rb +72 -0
  49. data/test/fixtures/cucumber4_recorder/Gemfile +5 -0
  50. data/test/fixtures/cucumber4_recorder/appmap.yml +3 -0
  51. data/test/fixtures/cucumber4_recorder/features/say_hello.feature +5 -0
  52. data/test/fixtures/cucumber4_recorder/features/support/env.rb +5 -0
  53. data/test/fixtures/cucumber4_recorder/features/support/hooks.rb +11 -0
  54. data/test/fixtures/cucumber4_recorder/features/support/steps.rb +9 -0
  55. data/test/fixtures/cucumber4_recorder/lib/hello.rb +7 -0
  56. data/test/fixtures/cucumber_recorder/Gemfile +5 -0
  57. data/test/fixtures/cucumber_recorder/appmap.yml +3 -0
  58. data/test/fixtures/cucumber_recorder/features/say_hello.feature +5 -0
  59. data/test/fixtures/cucumber_recorder/features/support/env.rb +5 -0
  60. data/test/fixtures/cucumber_recorder/features/support/hooks.rb +11 -0
  61. data/test/fixtures/cucumber_recorder/features/support/steps.rb +9 -0
  62. data/test/fixtures/cucumber_recorder/lib/hello.rb +7 -0
  63. data/test/fixtures/minitest_recorder/Gemfile +5 -0
  64. data/test/fixtures/minitest_recorder/appmap.yml +3 -0
  65. data/test/fixtures/minitest_recorder/lib/hello.rb +5 -0
  66. data/test/fixtures/minitest_recorder/test/hello_test.rb +12 -0
  67. data/test/fixtures/process_recorder/appmap.yml +3 -0
  68. data/test/fixtures/process_recorder/hello.rb +9 -0
  69. data/test/minitest_test.rb +38 -0
  70. data/test/record_process_test.rb +35 -0
  71. data/test/test_helper.rb +1 -0
  72. metadata +55 -3
  73. data/spec/fixtures/hook/class_method.rb +0 -17
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'test_helper'
5
+ require 'English'
6
+
7
+ class MinitestTest < Minitest::Test
8
+ def perform_test(test_name)
9
+ Bundler.with_clean_env do
10
+ Dir.chdir 'test/fixtures/minitest_recorder' do
11
+ FileUtils.rm_rf 'tmp'
12
+ system 'bundle config --local local.appmap ../../..'
13
+ system 'bundle'
14
+ system({ 'APPMAP' => 'true' }, %(bundle exec ruby -Ilib -Itest test/#{test_name}_test.rb))
15
+
16
+ yield
17
+ end
18
+ end
19
+ end
20
+
21
+ def test_hello
22
+ perform_test 'hello' do
23
+ appmap_file = 'tmp/appmap/minitest/Hello_hello.appmap.json'
24
+
25
+ assert File.file?(appmap_file), 'appmap output file does not exist'
26
+ appmap = JSON.parse(File.read(appmap_file))
27
+ assert_equal AppMap::APPMAP_FORMAT_VERSION, appmap['version']
28
+ assert_includes appmap.keys, 'metadata'
29
+ metadata = appmap['metadata']
30
+ assert_equal 'minitest_recorder', metadata['app']
31
+ assert_equal 'minitest', metadata['recorder']['name']
32
+ assert_equal 'ruby', metadata['language']['name']
33
+ assert_equal 'Hello', metadata['feature_group']
34
+ assert_equal 'hello', metadata['feature']
35
+ assert_equal 'Hello hello', metadata['name']
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'test_helper'
5
+ require 'English'
6
+
7
+ class RecordProcessTest < Minitest::Test
8
+ def perform_test(program_name)
9
+ Bundler.with_clean_env do
10
+ Dir.chdir 'test/fixtures/process_recorder' do
11
+ FileUtils.rm_rf 'tmp'
12
+ system 'bundle config --local local.appmap ../../..'
13
+ system 'bundle'
14
+ system(%(bundle exec ruby #{program_name}))
15
+
16
+ yield
17
+ end
18
+ end
19
+ end
20
+
21
+ def test_hello
22
+ perform_test 'hello.rb' do
23
+ appmap_file = 'appmap.json'
24
+
25
+ assert File.file?(appmap_file), 'appmap output file does not exist'
26
+ appmap = JSON.parse(File.read(appmap_file))
27
+ assert_equal AppMap::APPMAP_FORMAT_VERSION, appmap['version']
28
+ assert_includes appmap.keys, 'metadata'
29
+ metadata = appmap['metadata']
30
+ assert_equal 'process_recorder', metadata['app']
31
+ assert_equal 'record_process', metadata['recorder']['name']
32
+ assert_equal 'ruby', metadata['language']['name']
33
+ end
34
+ end
35
+ end
@@ -2,3 +2,4 @@ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
2
2
  require 'appmap'
3
3
 
4
4
  require 'minitest/autorun'
5
+ require 'diffy'
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.27.0
4
+ version: 0.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Gilpin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
11
+ date: 2020-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -269,14 +283,22 @@ files:
269
283
  - lib/appmap/class_map.rb
270
284
  - lib/appmap/command/record.rb
271
285
  - lib/appmap/command/stats.rb
286
+ - lib/appmap/config.rb
287
+ - lib/appmap/cucumber.rb
272
288
  - lib/appmap/event.rb
273
289
  - lib/appmap/hook.rb
290
+ - lib/appmap/hook/method.rb
291
+ - lib/appmap/metadata.rb
274
292
  - lib/appmap/middleware/remote_recording.rb
293
+ - lib/appmap/minitest.rb
294
+ - lib/appmap/open.rb
275
295
  - lib/appmap/rails/action_handler.rb
276
296
  - lib/appmap/rails/sql_handler.rb
277
297
  - lib/appmap/railtie.rb
298
+ - lib/appmap/record.rb
278
299
  - lib/appmap/rspec.rb
279
300
  - lib/appmap/trace.rb
301
+ - lib/appmap/util.rb
280
302
  - lib/appmap/version.rb
281
303
  - lore/pages/2019-05-21-install-and-record/index.pug
282
304
  - lore/pages/2019-05-21-install-and-record/install_example_appmap.png
@@ -301,10 +323,11 @@ files:
301
323
  - spec/abstract_controller_base_spec.rb
302
324
  - spec/config_spec.rb
303
325
  - spec/fixtures/hook/attr_accessor.rb
304
- - spec/fixtures/hook/class_method.rb
326
+ - spec/fixtures/hook/compare.rb
305
327
  - spec/fixtures/hook/constructor.rb
306
328
  - spec/fixtures/hook/exception_method.rb
307
329
  - spec/fixtures/hook/instance_method.rb
330
+ - spec/fixtures/hook/singleton_method.rb
308
331
  - spec/fixtures/rack_users_app/.dockerignore
309
332
  - spec/fixtures/rack_users_app/.gitignore
310
333
  - spec/fixtures/rack_users_app/Dockerfile
@@ -436,6 +459,10 @@ files:
436
459
  - spec/fixtures/rails_users_app/db/migrate/20190728211408_create_users.rb
437
460
  - spec/fixtures/rails_users_app/db/schema.rb
438
461
  - spec/fixtures/rails_users_app/docker-compose.yml
462
+ - spec/fixtures/rails_users_app/features/api_users.feature
463
+ - spec/fixtures/rails_users_app/features/support/env.rb
464
+ - spec/fixtures/rails_users_app/features/support/hooks.rb
465
+ - spec/fixtures/rails_users_app/features/support/steps.rb
439
466
  - spec/fixtures/rails_users_app/lib/tasks/.keep
440
467
  - spec/fixtures/rails_users_app/log/.keep
441
468
  - spec/fixtures/rails_users_app/public/robots.txt
@@ -445,6 +472,7 @@ files:
445
472
  - spec/fixtures/rails_users_app/spec/spec_helper.rb
446
473
  - spec/fixtures/rails_users_app/users_app/.gitignore
447
474
  - spec/hook_spec.rb
475
+ - spec/open_spec.rb
448
476
  - spec/rails_spec_helper.rb
449
477
  - spec/railtie_spec.rb
450
478
  - spec/record_sql_rails4_pg_spec.rb
@@ -452,15 +480,39 @@ files:
452
480
  - spec/remote_recording_spec.rb
453
481
  - spec/rspec_feature_metadata_spec.rb
454
482
  - spec/spec_helper.rb
483
+ - spec/util_spec.rb
455
484
  - test/cli_test.rb
485
+ - test/cucumber_test.rb
456
486
  - test/fixtures/cli_record_test/appmap.yml
457
487
  - test/fixtures/cli_record_test/lib/cli_record_test/main.rb
488
+ - test/fixtures/cucumber4_recorder/Gemfile
489
+ - test/fixtures/cucumber4_recorder/appmap.yml
490
+ - test/fixtures/cucumber4_recorder/features/say_hello.feature
491
+ - test/fixtures/cucumber4_recorder/features/support/env.rb
492
+ - test/fixtures/cucumber4_recorder/features/support/hooks.rb
493
+ - test/fixtures/cucumber4_recorder/features/support/steps.rb
494
+ - test/fixtures/cucumber4_recorder/lib/hello.rb
495
+ - test/fixtures/cucumber_recorder/Gemfile
496
+ - test/fixtures/cucumber_recorder/appmap.yml
497
+ - test/fixtures/cucumber_recorder/features/say_hello.feature
498
+ - test/fixtures/cucumber_recorder/features/support/env.rb
499
+ - test/fixtures/cucumber_recorder/features/support/hooks.rb
500
+ - test/fixtures/cucumber_recorder/features/support/steps.rb
501
+ - test/fixtures/cucumber_recorder/lib/hello.rb
502
+ - test/fixtures/minitest_recorder/Gemfile
503
+ - test/fixtures/minitest_recorder/appmap.yml
504
+ - test/fixtures/minitest_recorder/lib/hello.rb
505
+ - test/fixtures/minitest_recorder/test/hello_test.rb
506
+ - test/fixtures/process_recorder/appmap.yml
507
+ - test/fixtures/process_recorder/hello.rb
458
508
  - test/fixtures/rspec_recorder/Gemfile
459
509
  - test/fixtures/rspec_recorder/appmap.yml
460
510
  - test/fixtures/rspec_recorder/lib/hello.rb
461
511
  - test/fixtures/rspec_recorder/spec/decorated_hello_spec.rb
462
512
  - test/fixtures/rspec_recorder/spec/labeled_hello_spec.rb
463
513
  - test/fixtures/rspec_recorder/spec/plain_hello_spec.rb
514
+ - test/minitest_test.rb
515
+ - test/record_process_test.rb
464
516
  - test/rspec_test.rb
465
517
  - test/test_helper.rb
466
518
  homepage: https://github.com/applandinc/appmap-ruby
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class ClassMethod
4
- class << self
5
- def say_default
6
- 'default'
7
- end
8
- end
9
-
10
- def ClassMethod.say_class_defined
11
- 'defined with explicit class scope'
12
- end
13
-
14
- def self.say_self_defined
15
- 'defined with self class scope'
16
- end
17
- end