appmap 0.26.1 → 0.32.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 (70) 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/exe/appmap +3 -1
  7. data/lib/appmap.rb +56 -35
  8. data/lib/appmap/algorithm/stats.rb +2 -1
  9. data/lib/appmap/class_map.rb +21 -28
  10. data/lib/appmap/command/record.rb +2 -61
  11. data/lib/appmap/config.rb +89 -0
  12. data/lib/appmap/cucumber.rb +89 -0
  13. data/lib/appmap/event.rb +28 -19
  14. data/lib/appmap/hook.rb +56 -128
  15. data/lib/appmap/hook/method.rb +78 -0
  16. data/lib/appmap/metadata.rb +62 -0
  17. data/lib/appmap/middleware/remote_recording.rb +2 -6
  18. data/lib/appmap/minitest.rb +141 -0
  19. data/lib/appmap/rails/action_handler.rb +7 -7
  20. data/lib/appmap/rails/sql_handler.rb +10 -8
  21. data/lib/appmap/railtie.rb +2 -2
  22. data/lib/appmap/record.rb +27 -0
  23. data/lib/appmap/rspec.rb +20 -38
  24. data/lib/appmap/trace.rb +19 -11
  25. data/lib/appmap/util.rb +59 -0
  26. data/lib/appmap/version.rb +1 -1
  27. data/package-lock.json +3 -3
  28. data/spec/abstract_controller4_base_spec.rb +1 -1
  29. data/spec/abstract_controller_base_spec.rb +9 -2
  30. data/spec/config_spec.rb +3 -3
  31. data/spec/fixtures/hook/compare.rb +7 -0
  32. data/spec/fixtures/hook/singleton_method.rb +54 -0
  33. data/spec/fixtures/rails_users_app/Gemfile +1 -0
  34. data/spec/fixtures/rails_users_app/features/api_users.feature +13 -0
  35. data/spec/fixtures/rails_users_app/features/support/env.rb +4 -0
  36. data/spec/fixtures/rails_users_app/features/support/hooks.rb +11 -0
  37. data/spec/fixtures/rails_users_app/features/support/steps.rb +18 -0
  38. data/spec/hook_spec.rb +228 -53
  39. data/spec/rails_spec_helper.rb +2 -0
  40. data/spec/record_sql_rails_pg_spec.rb +56 -33
  41. data/spec/rspec_feature_metadata_spec.rb +2 -0
  42. data/spec/spec_helper.rb +4 -0
  43. data/spec/util_spec.rb +21 -0
  44. data/test/cli_test.rb +4 -4
  45. data/test/cucumber_test.rb +72 -0
  46. data/test/fixtures/cucumber4_recorder/Gemfile +5 -0
  47. data/test/fixtures/cucumber4_recorder/appmap.yml +3 -0
  48. data/test/fixtures/cucumber4_recorder/features/say_hello.feature +5 -0
  49. data/test/fixtures/cucumber4_recorder/features/support/env.rb +5 -0
  50. data/test/fixtures/cucumber4_recorder/features/support/hooks.rb +11 -0
  51. data/test/fixtures/cucumber4_recorder/features/support/steps.rb +9 -0
  52. data/test/fixtures/cucumber4_recorder/lib/hello.rb +7 -0
  53. data/test/fixtures/cucumber_recorder/Gemfile +5 -0
  54. data/test/fixtures/cucumber_recorder/appmap.yml +3 -0
  55. data/test/fixtures/cucumber_recorder/features/say_hello.feature +5 -0
  56. data/test/fixtures/cucumber_recorder/features/support/env.rb +5 -0
  57. data/test/fixtures/cucumber_recorder/features/support/hooks.rb +11 -0
  58. data/test/fixtures/cucumber_recorder/features/support/steps.rb +9 -0
  59. data/test/fixtures/cucumber_recorder/lib/hello.rb +7 -0
  60. data/test/fixtures/minitest_recorder/Gemfile +5 -0
  61. data/test/fixtures/minitest_recorder/appmap.yml +3 -0
  62. data/test/fixtures/minitest_recorder/lib/hello.rb +5 -0
  63. data/test/fixtures/minitest_recorder/test/hello_test.rb +12 -0
  64. data/test/fixtures/process_recorder/appmap.yml +3 -0
  65. data/test/fixtures/process_recorder/hello.rb +9 -0
  66. data/test/minitest_test.rb +38 -0
  67. data/test/record_process_test.rb +35 -0
  68. data/test/test_helper.rb +1 -0
  69. metadata +39 -3
  70. data/spec/fixtures/hook/class_method.rb +0 -17
@@ -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.26.1
4
+ version: 0.32.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-05-14 00:00:00.000000000 Z
11
+ date: 2020-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -269,14 +269,21 @@ files:
269
269
  - lib/appmap/class_map.rb
270
270
  - lib/appmap/command/record.rb
271
271
  - lib/appmap/command/stats.rb
272
+ - lib/appmap/config.rb
273
+ - lib/appmap/cucumber.rb
272
274
  - lib/appmap/event.rb
273
275
  - lib/appmap/hook.rb
276
+ - lib/appmap/hook/method.rb
277
+ - lib/appmap/metadata.rb
274
278
  - lib/appmap/middleware/remote_recording.rb
279
+ - lib/appmap/minitest.rb
275
280
  - lib/appmap/rails/action_handler.rb
276
281
  - lib/appmap/rails/sql_handler.rb
277
282
  - lib/appmap/railtie.rb
283
+ - lib/appmap/record.rb
278
284
  - lib/appmap/rspec.rb
279
285
  - lib/appmap/trace.rb
286
+ - lib/appmap/util.rb
280
287
  - lib/appmap/version.rb
281
288
  - lore/pages/2019-05-21-install-and-record/index.pug
282
289
  - lore/pages/2019-05-21-install-and-record/install_example_appmap.png
@@ -301,10 +308,11 @@ files:
301
308
  - spec/abstract_controller_base_spec.rb
302
309
  - spec/config_spec.rb
303
310
  - spec/fixtures/hook/attr_accessor.rb
304
- - spec/fixtures/hook/class_method.rb
311
+ - spec/fixtures/hook/compare.rb
305
312
  - spec/fixtures/hook/constructor.rb
306
313
  - spec/fixtures/hook/exception_method.rb
307
314
  - spec/fixtures/hook/instance_method.rb
315
+ - spec/fixtures/hook/singleton_method.rb
308
316
  - spec/fixtures/rack_users_app/.dockerignore
309
317
  - spec/fixtures/rack_users_app/.gitignore
310
318
  - spec/fixtures/rack_users_app/Dockerfile
@@ -436,6 +444,10 @@ files:
436
444
  - spec/fixtures/rails_users_app/db/migrate/20190728211408_create_users.rb
437
445
  - spec/fixtures/rails_users_app/db/schema.rb
438
446
  - spec/fixtures/rails_users_app/docker-compose.yml
447
+ - spec/fixtures/rails_users_app/features/api_users.feature
448
+ - spec/fixtures/rails_users_app/features/support/env.rb
449
+ - spec/fixtures/rails_users_app/features/support/hooks.rb
450
+ - spec/fixtures/rails_users_app/features/support/steps.rb
439
451
  - spec/fixtures/rails_users_app/lib/tasks/.keep
440
452
  - spec/fixtures/rails_users_app/log/.keep
441
453
  - spec/fixtures/rails_users_app/public/robots.txt
@@ -452,15 +464,39 @@ files:
452
464
  - spec/remote_recording_spec.rb
453
465
  - spec/rspec_feature_metadata_spec.rb
454
466
  - spec/spec_helper.rb
467
+ - spec/util_spec.rb
455
468
  - test/cli_test.rb
469
+ - test/cucumber_test.rb
456
470
  - test/fixtures/cli_record_test/appmap.yml
457
471
  - test/fixtures/cli_record_test/lib/cli_record_test/main.rb
472
+ - test/fixtures/cucumber4_recorder/Gemfile
473
+ - test/fixtures/cucumber4_recorder/appmap.yml
474
+ - test/fixtures/cucumber4_recorder/features/say_hello.feature
475
+ - test/fixtures/cucumber4_recorder/features/support/env.rb
476
+ - test/fixtures/cucumber4_recorder/features/support/hooks.rb
477
+ - test/fixtures/cucumber4_recorder/features/support/steps.rb
478
+ - test/fixtures/cucumber4_recorder/lib/hello.rb
479
+ - test/fixtures/cucumber_recorder/Gemfile
480
+ - test/fixtures/cucumber_recorder/appmap.yml
481
+ - test/fixtures/cucumber_recorder/features/say_hello.feature
482
+ - test/fixtures/cucumber_recorder/features/support/env.rb
483
+ - test/fixtures/cucumber_recorder/features/support/hooks.rb
484
+ - test/fixtures/cucumber_recorder/features/support/steps.rb
485
+ - test/fixtures/cucumber_recorder/lib/hello.rb
486
+ - test/fixtures/minitest_recorder/Gemfile
487
+ - test/fixtures/minitest_recorder/appmap.yml
488
+ - test/fixtures/minitest_recorder/lib/hello.rb
489
+ - test/fixtures/minitest_recorder/test/hello_test.rb
490
+ - test/fixtures/process_recorder/appmap.yml
491
+ - test/fixtures/process_recorder/hello.rb
458
492
  - test/fixtures/rspec_recorder/Gemfile
459
493
  - test/fixtures/rspec_recorder/appmap.yml
460
494
  - test/fixtures/rspec_recorder/lib/hello.rb
461
495
  - test/fixtures/rspec_recorder/spec/decorated_hello_spec.rb
462
496
  - test/fixtures/rspec_recorder/spec/labeled_hello_spec.rb
463
497
  - test/fixtures/rspec_recorder/spec/plain_hello_spec.rb
498
+ - test/minitest_test.rb
499
+ - test/record_process_test.rb
464
500
  - test/rspec_test.rb
465
501
  - test/test_helper.rb
466
502
  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